Ji Yong Shin, Cornell University
Host: Mahesh Balakrishnan
Title: Transactional Isolation for Block Storage
Abstract: Existing storage stacks are top-heavy and expect little from block storage. As a result, new high-level storage abstractions — and new designs for existing abstractions — are difficult to realize, requiring developers to implement from scratch complex functionality such as failure atomicity and fine-grained concurrency control. In this talk, I will argue that pushing transactional isolation into the block store (in addition to atomicity and durability) is both viable and broadly useful, resulting in simpler high-level storage systems that provide strong semantics without sacrificing performance. I will present Isotope, a new block store that supports ACID transactions over block reads and writes. Internally, Isotope uses a new multi-version concurrency control protocol that exploits fine-grained, sub-block parallelism in workloads and offers both strict serializability and snapshot isolation guarantees. Several high-level storage systems are built over Isotope, including two key-value stores that implement the LevelDB API over a hashtable and B-tree, respectively, and a POSIX filesystem. Isotope’s block-level transactions enable systems that are simple (100s of lines of code), robust (i.e., providing ACID guarantees), and fast (e.g., 415 MB/s for random file writes). These systems can be composed using Isotope, providing applications with transactions across different high-level constructs such as files, directories and key-value pairs.