Hathi: durable transactions for memory using flash

  • Authors:
  • Mohit Saxena;Mehul A. Shah;Stavros Harizopoulos;Michael M. Swift;Arif Merchant

  • Affiliations:
  • U. Wisconsin-Madison;Nou Data;Nou Data;U. Wisconsin-Madison;Google

  • Venue:
  • DaMoN '12 Proceedings of the Eighth International Workshop on Data Management on New Hardware
  • Year:
  • 2012

Quantified Score

Hi-index 0.00

Visualization

Abstract

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, we 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. To reduce the cost of durability, Hathi uses two main techniques. First, it provides split-phase and partitioned commit interfaces, that allow programmers to overlap commit I/O with computation and to avoid unnecessary synchronization. Second, it uses partitioned logging, which reduces contention on in-memory log buffers and exploits internal SSD parallelism. We find that our implementation of Hathi can achieve 1.25 million txns/s with a single SSD.