Hathi: Durable Transactions for Memory Using Flash
Recent architectural trends - cheap, fast solid-state storage, inexpensive DRAM, and multi-core CPUs - provide an opportunity to rethink the interface between applications and persistent storage. To leverage these advances, the authors propose a new system architecture called Hathi that provides an in-memory transactional heap made persistent using high-speed flash drives. With Hathi, programmers can make consistent concurrent updates to in-memory data structures that survive system failures. Hathi focuses on three major design goals: ACID semantics, a simple programming interface, and fine-grained programmer control. Hathi relies on software transactional memory to provide a simple concurrent interface to in-memory data structures, and extends it with persistent logs and checkpoints to add durability.