Systems that provide powerful transaction mechanisms often rely on
write-ahead logging (WAL) implementations that were designed with slow,
disk-based systems in mind. The emerging class of fast, byte-addressable,
non-volatile memory (NVM) technologies (e.g., phase change memories,
spin-torque MRAMs, and the memristor), however, present performance
characteristics very different from both disks and flash-based SSDs. This
paper addresses the problem of designing a WAL scheme optimized for these fast
NVM-based storage systems. We examine the features that a system like ARIES, a
WAL algorithm popular for databases, must provide and separate them from the
implementation decisions ARIES makes to optimize for disk-based systems. We
design a new NVM-optimized WAL scheme (called MARS) in tandem with a novel SSD
multi-part atomic write primitive that combine to provide the same features as
ARIES does without any of the disk-centric limitations. The new atomic write
primitive makes the log's contents visible to the application, allowing for a
simpler and faster implementation. MARS provides atomicity, durability, and
high performance by leveraging the enormous internal bandwidth and high degree
of parallelism that advanced SSDs will provide. We have implemented MARS and
the novel visible atomic write primitive in a next-generation SSD. This paper
demonstrates the overhead of the primitive is minimal compared to normal
writes, and our hardware provides large speedups for transactional updates to
hash tables, b-trees, and large graphs. MARS outperforms ARIES by up to 3.7x
Pre-2018 CSE ID: CS2012-0981