- Hive originally only supported updating partitions by overwriting entire files, which caused issues for concurrent readers and limited functionality like row-level updates. - The need for ACID transactions in Hive arose from wanting to support updating data in near real-time as it arrives and making ad hoc data changes without complex workarounds. - Hive's ACID implementation stores changes as delta files, uses the metastore to manage transactions and locks, and runs compactions to merge deltas into base files. - There were initial issues around correctness, performance, usability and resilience, but many have been addressed with ongoing work focused on further improvements and new features like multi-statement transactions and better integration with LLAP.