Muninn: a Versioning Flash Key-Value Store Using an Object-based Storage Model

While non-volatile memory (NVRAM) devices have the potential to alleviate the trade-off between performance, scalability, and energy in storage and memory subsystems, a block interface and storage subsystems designed for slow I/O devices make it difficult to efficiently exploit NVRAMs in a portable and extensible way. We propose an object-based storage model as a way of addressing the shortfalls of the current interfaces. Through the design of Muninn, an object-based versioning key-value store, we demonstrate that an in-device NVRAM management layer can be as efficient as that of NVRAM-aware key-value stores while not requiring host resources or host changes, and enabling tightly-coupled optimizations. Muninn is also designed to show that versioning can be added to a file system transparently with minimal host-side changes. As a flash key-value store, it achieves better life-time and low read/write amplification by eliminating internal data movements and per-object metadata updates using Bloom filters and hash functions. By doing so, it achieves as few as 1.5 flash page reads per look up and 0.26 flash page writes per insert on average with 50 million 1 KB key-value pairs without incurring data re-organization. This is close to the minimum number of flash accesses required to read and store the 1 KB key-value pairs, thus increasing performance and lifetime of flash media.

[1]  Michael Mitzenmacher,et al.  Simple Summaries for Hashing With Choices , 2008, IEEE/ACM Transactions on Networking.

[2]  Suman Nath,et al.  Cheap and Large CAMs for High Performance Data-Intensive Networked Systems , 2010, NSDI.

[3]  Chanik Park,et al.  Enabling cost-effective data processing with smart SSD , 2013, 2013 IEEE 29th Symposium on Mass Storage Systems and Technologies (MSST).

[4]  Ethan L. Miller,et al.  Object-based SCM: An efficient interface for Storage Class Memories , 2011, 2011 IEEE 27th Symposium on Mass Storage Systems and Technologies (MSST).

[5]  M.H. Kryder,et al.  After Hard Drives—What Comes Next? , 2009, IEEE Transactions on Magnetics.

[6]  Rajesh K. Gupta,et al.  Moneta: A High-Performance Storage Array Architecture for Next-Generation, Non-volatile Memories , 2010, 2010 43rd Annual IEEE/ACM International Symposium on Microarchitecture.

[7]  Jie Wu,et al.  The Dynamic Bloom Filters , 2010, IEEE Transactions on Knowledge and Data Engineering.

[8]  David Flynn,et al.  DFS: A file system for virtualized flash storage , 2010, TOS.

[9]  Anand Sivasubramaniam,et al.  Leveraging Value Locality in Optimizing NAND Flash-based SSDs , 2011, FAST.

[10]  Kyu Ho Park,et al.  JFTL: A flash translation layer based on a journal remapping for flash memory , 2009, TOS.

[11]  Jin Li,et al.  FlashStore , 2010, Proc. VLDB Endow..

[12]  S.A. Brandt,et al.  CRUSH: Controlled, Scalable, Decentralized Placement of Replicated Data , 2006, ACM/IEEE SC 2006 Conference (SC'06).

[13]  David Hutchison,et al.  Scalable Bloom Filters , 2007, Inf. Process. Lett..

[14]  Ethan L. Miller,et al.  Adding aggressive error correction to a high-performance compressing flash file system , 2009, EMSOFT '09.

[15]  David Hung-Chang Du,et al.  BloomStore: Bloom-Filter based memory-efficient key-value store for indexing of data deduplication on flash , 2012, 012 IEEE 28th Symposium on Mass Storage Systems and Technologies (MSST).

[16]  Tian Luo,et al.  CAFTL: A Content-Aware Flash Translation Layer Enhancing the Lifespan of Flash Memory based Solid State Drives , 2011, FAST.

[17]  Rodney Van Meter,et al.  Network attached storage architecture , 2000, CACM.

[18]  Darrell D. E. Long,et al.  Swift: Using Distributed Disk Striping to Provide High I/O Data Rates , 1991, Comput. Syst..

[19]  Sang Lyul Min,et al.  LTFTL: lightweight time-shift flash translation layer for flash memory based embedded storage , 2008, EMSOFT '08.

[20]  Bin Fan,et al.  SILT: a memory-efficient, high-performance key-value store , 2011, SOSP.

[21]  John D. Davis,et al.  Block Management in Solid-State Devices , 2009, USENIX Annual Technical Conference.

[22]  Tao Zou,et al.  Tango: distributed data structures over a shared log , 2013, SOSP.

[23]  Hyung Gyu Lee,et al.  A PRAM and NAND flash hybrid architecture for high-performance embedded storage subsystems , 2008, EMSOFT '08.

[24]  Joonwon Lee,et al.  CFLRU: a replacement algorithm for flash memory , 2006, CASES '06.

[25]  Andrea C. Arpaci-Dusseau,et al.  De-indirection for flash-based SSDs with nameless writes , 2012, FAST.

[26]  Jongmoo Choi,et al.  Exploiting non-volatile RAM to enhance flash file system performance , 2007, EMSOFT '07.

[27]  Burton H. Bloom,et al.  Space/time trade-offs in hash coding with allowable errors , 1970, CACM.

[28]  Jin Li,et al.  SkimpyStash: RAM space skimpy key-value store on flash-based storage , 2011, SIGMOD '11.

[29]  Erik Riedel,et al.  The ANSI T10 object-based storage standard and current implementations , 2008, IBM J. Res. Dev..

[30]  Christopher Frost,et al.  Better I/O through byte-addressable, persistent memory , 2009, SOSP '09.