2B-SSD: The Case for Dual, Byte- and Block-Addressable Solid-State Drives

Performance critical transaction and storage systems require fast persistence of write data. Typically, a non-volatile RAM (NVRAM) is employed on the datapath to the permanent storage, to temporarily and quickly store write data before the system acknowledges the write request. NVRAM is commonly implemented with battery-backed DRAM. Unfortunately, battery-backed DRAM is small and costly, and occupies a precious DIMM slot. In this paper, we make a case for dual, byte- and block-addressable solid-state drive (2B-SSD), a novel NAND flash SSD architecture designed to offer a dual view of byte addressability and traditional block addressability at the same time. Unlike a conventional storage device, 2B-SSD allows accessing the same file with two independent byte- and block-I/O paths. It controls the data transfer between its internal DRAM and NAND flash memory through an intuitive software interface, and manages the mapping of the two address spaces. 2B-SSD realizes a wholly different way and speed of accessing files on a storage device; applications can access them directly using memory-mapped I/O, and moreover write with a DRAM-like latency. To quantify the benefits of 2B-SSD, we modified logging subsystems of major database engines to store log records directly on it without buffering them in the host memory. When running popular workloads, we measured throughput gains in the range of 1.2X and 2.8X with no risk of data loss.

[1]  Evangelos Eleftheriou,et al.  Write amplification analysis in flash-based solid state drives , 2009, SYSTOR '09.

[2]  Ismail Oukid,et al.  Memory Management Techniques for Large-Scale Persistent-Main-Memory Systems , 2017, Proc. VLDB Endow..

[3]  Ippokratis Pandis,et al.  Scalability of write-ahead logging on multicore and multisocket hardware , 2012, The VLDB Journal.

[4]  Winfried W. Wilcke,et al.  Storage-class memory: The next storage system technology , 2008, IBM J. Res. Dev..

[5]  Jaemin Jung,et al.  HEAPO: Heap-Based Persistent Object Store , 2015, TOS.

[6]  Hyeonsang Eom,et al.  Low-latency Memory-Mapped I/O for Data-Intensive Applications on Fast Storage Devices , 2012, 2012 SC Companion: High Performance Computing, Networking Storage and Analysis.

[7]  Thomas E. Anderson,et al.  Strata: A Cross Media File System , 2017, SOSP.

[8]  Dhruva R. Chakrabarti,et al.  Implications of CPU Caching on Byte-addressable Non-Volatile Memory Programming , 2012 .

[9]  Qin Jin,et al.  Persistent B+-Trees in Non-Volatile Main Memory , 2015, Proc. VLDB Endow..

[10]  Jonghoon Park,et al.  11.4 A 512Gb 3b/cell 64-stacked WL 3D V-NAND flash memory , 2017, 2017 IEEE International Solid-State Circuits Conference (ISSCC).

[11]  Ryan Johnson,et al.  Scalable Logging through Emerging Non-Volatile Memory , 2014, Proc. VLDB Endow..

[12]  Hwanju Kim,et al.  Request-Oriented Durable Write Caching for Application Performance , 2015, USENIX Annual Technical Conference.

[13]  신웅 OS I/O path optimizations for flash solid-state drives , 2017 .

[14]  Frank Hady,et al.  When poll is better than interrupt , 2012, FAST.

[15]  Andrea C. Arpaci-Dusseau,et al.  Analysis and Evolution of Journaling File Systems , 2005, USENIX Annual Technical Conference, General Track.

[16]  David A. Patterson,et al.  Computer Architecture, Fifth Edition: A Quantitative Approach , 2011 .

[17]  Michael Stonebraker,et al.  The POSTGRES next generation database management system , 1991, CACM.

[18]  Qiang Wu,et al.  A Large-Scale Study of Flash Memory Failures in the Field , 2015, SIGMETRICS 2015.

[19]  Jinyoung Lee,et al.  Biscuit: A Framework for Near-Data Processing of Big Data Workloads , 2016, 2016 ACM/IEEE 43rd Annual International Symposium on Computer Architecture (ISCA).

[20]  Jaemin Jung,et al.  FRASH: Exploiting storage class memory in hybrid file system for hierarchical storage , 2010, TOS.

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

[22]  Irving L. Traiger,et al.  System R: relational approach to database management , 1976, TODS.

[23]  Youjip Won,et al.  NVWAL: Exploiting NVRAM in Write-Ahead Logging , 2016, ASPLOS.

[24]  Sang-Won Lee,et al.  Durable write cache in flash memory SSD for relational and NoSQL databases , 2014, SIGMOD Conference.

[25]  Orion Hodson,et al.  Whole-system persistence , 2012, ASPLOS XVII.

[26]  Karsten Schwan,et al.  NVRAM-aware Logging in Transaction Systems , 2014, Proc. VLDB Endow..

[27]  Eunji Lee,et al.  Unioning of the buffer cache and journaling layers with non-volatile memory , 2013, FAST.

[28]  Rajesh K. Gupta,et al.  NV-Heaps: making persistent objects fast and safe with next-generation, non-volatile memories , 2011, ASPLOS XVI.

[29]  Tony Savor,et al.  Optimizing Space Amplification in RocksDB , 2017, CIDR.

[30]  Arif Merchant,et al.  Flash Reliability in Production: The Expected and the Unexpected , 2016, FAST.

[31]  Guy E. Blelloch,et al.  Efficient Algorithms with Asymmetric Read and Write Costs , 2015, ESA.

[32]  Adam Silberstein,et al.  Benchmarking cloud serving systems with YCSB , 2010, SoCC '10.

[33]  Ki-Whan Song,et al.  A flash memory controller for 15μs ultra-low-latency SSD using high-speed 3D NAND flash with 3μs read time , 2018, 2018 IEEE International Solid - State Circuits Conference - (ISSCC).

[34]  Thomas F. Wenisch,et al.  Thermostat: Application-transparent Page Management for Two-tiered Main Memory , 2017, ASPLOS.

[35]  David J. DeWitt,et al.  Turbocharging DBMS buffer pool using SSDs , 2011, SIGMOD '11.

[36]  Chung H. Lam,et al.  Storage Class Memory , 2010, 2010 10th IEEE International Conference on Solid-State and Integrated Circuit Technology.

[37]  Hamid Pirahesh,et al.  ARIES: a transaction recovery method supporting fine-granularity locking and partial rollbacks using write-ahead logging , 1998 .

[38]  Timothy G. Armstrong,et al.  LinkBench: a database benchmark based on the Facebook social graph , 2013, SIGMOD '13.

[39]  Jin-Soo Kim,et al.  NVMeDirect: A User-space I/O Framework for Application-specific Optimization on NVMe SSDs , 2016, HotStorage.

[40]  Goetz Graefe,et al.  Query processing techniques for solid state drives , 2009, SIGMOD Conference.

[41]  Jongmoo Choi,et al.  Towards greener data centers with storage class memory: minimizing idle power waste through coarse-grain management in fine-grain scale , 2010, CF '10.

[42]  Hasso Plattner,et al.  nvm malloc: Memory Allocation for NVRAM , 2015, ADMS@VLDB.

[43]  Karsten Schwan,et al.  Data tiering in heterogeneous memory systems , 2016, EuroSys.

[44]  Sang-Won Lee,et al.  Advances in flash memory SSD technology for enterprise database applications , 2009, SIGMOD Conference.