Moneta: A Storage System for Fast Non-Volatile Memories
Over the last few decades, storage performance has stagnated in comparison to the performance of the rest of the system. Over this time, system designers have continued to add additional layers of abstraction and optimization to the storage hierarchy in an attempt to hide and optimize accesses to high-latency storage. Emerging non-volatile memory technologies promise many orders of magnitude increases in storage array performance compared to existing storage technologies, but the thick layers of software built on the assumption that storage is slow risk squandering the full potential of these new devices. This dissertation describes a prototype high-performance storage array, called Moneta, designed for next-generation non-volatile memories, such as phase-change memory, that offer near-DRAM performance. Moneta allows us to explore the architecture of the storage array, the impact of software overheads on performance, the effects of non-volatile technology parameters on bandwidth and latency, and the ultimate benefit to applications.
Using Moneta, we show that system software can be optimized to expose fast storage with minimal latency overheads. Moneta reduces software overheads by 62% for 4 KB operations through the operating system, speeding up a range of file system, paging, and database workloads by up to 8.7 compared to flash-based SSDs. Moneta-Direct extends Moneta by refactoring trusted code throughout the IO stack. This allows applications to bypass the operating system and file system entirely on most accesses, further reducing IO overheads by 58% and increasing throughput by 7.6. Moneta-Direct demonstrates the importance of redesigning the IO stack to work efficiently with emerging fast non-volatile storage.
Finally, a further modification to Moneta allows us to explore the performance of distributed storage networks. These networks are integral parts of building scalable storage solutions. By integrating a low-latency network directly into the SSD, we can reduce the costs of accessing remote storage by up to 95% compared to commonly used higher-latency remote storage and network protocol layers. Overall, Moneta demonstrates the critical need to continue to redesign system architectures to make the best use of fast non-volatile memory technologies.