skip to main content
research-article

Leveraging NVMe SSDs for Building a Fast, Cost-effective, LSM-tree-based KV Store

Authors Info & Claims
Published:15 October 2021Publication History
Skip Abstract Section

Abstract

Key-value (KV) stores support many crucial applications and services. They perform fast in-memory processing but are still often limited by I/O performance. The recent emergence of high-speed commodity non-volatile memory express solid-state drives (NVMe SSDs) has propelled new KV system designs that take advantage of their ultra-low latency and high bandwidth. Meanwhile, to switch to entirely new data layouts and scale up entire databases to high-end SSDs requires considerable investment. As a compromise, we propose SpanDB, an LSM-tree-based KV store that adapts the popular RocksDB system to utilize selective deployment of high-speed SSDs. SpanDB allows users to host the bulk of their data on cheaper and larger SSDs (and even hard disc drives with certain workloads), while relocating write-ahead logs (WAL) and the top levels of the LSM-tree to a much smaller and faster NVMe SSD. To better utilize this fast disk, SpanDB provides high-speed, parallel WAL writes via SPDK, and enables asynchronous request processing to mitigate inter-thread synchronization overhead and work efficiently with polling-based I/O. To ease the live data migration between fast and slow disks, we introduce TopFS, a stripped-down file system providing familiar file interface wrappers on top of SPDK I/O. Our evaluation shows that SpanDB simultaneously improves RocksDB's throughput by up to 8.8\(\times\) and reduces its latency by 9.5–58.3%. Compared with KVell, a system designed for high-end SSDs, SpanDB achieves 96–140% of its throughput, with a 2.3–21.6\(\times\) lower latency, at a cheaper storage configuration.

REFERENCES

  1. [1] RocksDB. [n.d.]. A Persistent Key-Value Store for Fast Storage Environments. Retrieved from https://rocksdb.org/.Google ScholarGoogle Scholar
  2. [2] LinkedIn. [n.d.]. Benchmarking Apache Samza. Retrieved from https://engineering.linkedin.com/performance/benchmarking-apache-samza-12-million-messages-second-single-node.Google ScholarGoogle Scholar
  3. [3] MariaDB. [n.d.]. Group Commit for the Binary Log. Retrieved from https://mariadb.com/kb/en/group-commit-for-the-binary-log/.Google ScholarGoogle Scholar
  4. [4] GitHub. [n.d.] HHVM. Retrieved from https://github.com/facebook/hhvm.Google ScholarGoogle Scholar
  5. [5] Enterprise Storage Forum. [n.d.]. High capacity SSDs: How Big Can They Grow? Retrieved from https://www.enterprisestorageforum.com/hardware/high-capacity-ssds-how-big-can-they-grow/.Google ScholarGoogle Scholar
  6. [6] MySQL. [n.d.]. MySQL Reference Manual. Retrieved from https://dev.mysql.com/doc/refman/5.7/en/replication-options-binary-log.html#sysvar_binlog_order_commits.Google ScholarGoogle Scholar
  7. [7] I-Programmer. [n.d.]. RocksDB on Steroids. Retrieved from https://www.i-programmer.info/news/84-database/8542-rocksdb-on-steroids.html.Google ScholarGoogle Scholar
  8. [8] Samsung. [n.d.]. SSD Storage Capacities Increase With Improved Storage Density. Retrieved from https://insights.samsung.com/2016/06/28/ssd-storage-capacities-increase-with-improved-storage-density/.Google ScholarGoogle Scholar
  9. [9] CDW-G. [n.d.]. Storage & Hard Drives—The CDW-G website. Retrieved from https://www.cdwg.com/content/cdwg/en/products/storage-and-hard-drives.html.Google ScholarGoogle Scholar
  10. [10] Armstrong Timothy G., Ponnekanti Vamsi, Borthakur Dhruba, and Callaghan Mark. 2013. LinkBench: A Database Benchmark Based on the Facebook Social Graph. In Proceedings of the ACM SIGMOD International Conference on Management of Data. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. [11] Audibert Andrew. Scalable Metadata Service in Alluxio: Storing Billions of Files. Retrieved from https://www.alluxio.io/blog/scalable-metadata-service-in-alluxio-storing-billions-of-files/.Google ScholarGoogle Scholar
  12. [12] Bailleu Maurice, Thalheim Jörg, Bhatotia Pramod, Fetzer Christof, Honda Michio, and Vaswani Kapil. 2019. SPEICHER: Securing LSM-based Key-Value Stores using Shielded Execution. In Proceedings of the 17th USENIX Conference on File and Storage Technologies (FAST'19). 173190. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. [13] Balmau Oana, Didona Diego, Guerraoui Rachid, Zwaenepoel Willy, Yuan Huapeng, Arora Aashray, Gupta Karan, and Konka Pavan. 2017. TRIAD: Creating synergies between memory, disk and log in log structured key-value stores. In Proceedings of the USENIX Annual Technical Conference (USENIX ATC'17). Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. [14] Balmau Oana, Dinu Florin, Zwaenepoel Willy, Gupta Karan, Chandhiramoorthi Ravishankar, and Didona Diego. 2019. SILK: Preventing latency spikes in log-structured merge key-value stores. In Proceedings of the USENIX Annual Technical Conference (USENIX ATC'19). Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. [15] Balmau Oana, Guerraoui Rachid, Trigonakis Vasileios, and Zablotchi Igor. 2017. FloDB: Unlocking memory in persistent key-value stores. In Proceedings of the 12th European Conference on Computer Systems. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. [16] Bronson Nathan, Amsden Zach, Cabrera George, Chakka Prasad, Dimov Peter, Ding Hui, Ferris Jack, Giardullo Anthony, Kulkarni Sachin, Li Harry, Marchukov Mark, Petrov Dmitri, Puzar Lovro, Song Yee Jiun, and Venkataramani Venkat. 2013. TAO: Facebook's Distributed Data Store for the Social Graph. In Proceedings of the USENIX Annual Technical Conference (USENIX ATC'13). Retrieved from https://www.usenix.org/conference/atc13/technical-sessions/presentation/bronson. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. [17] Cao Zhichao, Dong Siying, Vemuri Sagar, and Du David H. C.. 2020. Characterizing, modeling, and benchmarking RocksDB key-value workloads at Facebook. In Proceedings of the 18th USENIX Conference on File and Storage Technologies (FAST'20). Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. [18] Chan Helen H. W., Liang Chieh-Jan Mike, Li Yongkun, He Wenjia, Lee Patrick P. C., Zhu Lianjie, Dong Yaozu, Xu Yinlong, Xu Yu, Jiang Jin, et al. 2018. HashKV: Enabling efficient updates in KV storage via hashing. In Proceedings of the USENIX Annual Technical Conference (USENIX ATC'18). Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. [19] Chen Youmin, Lu Youyou, Yang Fan, Wang Qing, Wang Yang, and Shu Jiwu. 2020. FlatStore: An efficient log-structured key-value storage engine for persistent memory. In Proceedings of the 25th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS'20). Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. [20] Conway Alexander, Gupta Abhishek, Chidambaram Vijay, Farach-Colton Martin, Spillane Richard, Tai Amy, and Johnson Rob. 2020. SplinterDB: Closing the bandwidth gap for NVMe key-value stores. In Proceedings of the USENIX Annual Technical Conference (USENIX ATC'20). Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. [21] Cooper Brian F., Silberstein Adam, Tam Erwin, Ramakrishnan Raghu, and Sears Russell. 2010. Benchmarking cloud serving systems with YCSB. In Proceedings of the 1st ACM Symposium on Cloud Computing. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. [22] Dayan Niv, Athanassoulis Manos, and Idreos Stratos. 2017. Monkey: Optimal navigable key-value store. In Proceedings of the ACM International Conference on Management of Data. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. [23] Dean Jeff. 2009. Designs, lessons and advice from building large distributed systems. In Proceedings of the International Workshop on Large Scale Distributed Systems and Middleware: Keynote (LADIS'09).Google ScholarGoogle Scholar
  24. [24] Debnath Biplob, Sengupta Sudipta, and Li Jin. 2010. FlashStore: High Throughput Persistent Key-Value Store. Proceedings of the VLDB Endowment 3, 1–2 (2010), 14141425. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. [25] Martino Catello Di, Kalbarczyk Zbigniew, Iyer Ravishankar K., Baccanico Fabio, Fullop Joseph, and Kramer William. 2014. Lessons learned from the analysis of system failures at petascale: The case of blue waters. In Proceedings of the 44th Annual IEEE/IFIP International Conference on Dependable Systems and Networks. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. [26] Eisenman Assaf, Gardner Darryl, AbdelRahman Islam, Axboe Jens, Dong Siying, Hazelwood Kim, Petersen Chris, Cidon Asaf, and Katti Sachin. 2018. Reducing DRAM footprint with NVM in Facebook. In Proceedings of the 13th EuroSys Conference (EuroSys'18). Article 42, 13 pages. https://doi.org/10.1145/3190508.3190524 Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. [27] Enberg Pekka, Rao Ashwin, and Tarkoma Sasu. 2019. I/O is faster than the CPU: Let's partition resources and eliminate (most) OS abstractions. In Proceedings of the Workshop on Hot Topics in Operating Systems (HotOS'19). 7 pages. https://doi.org/10.1145/3317550.3321426 Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. [28] Facebook. [n.d.]. Cassandra on RocksDB at Instagram. Retrieved from https://developers.facebook.com/videos/f8-2018/cassandra-on-rocksdb-at-instagram.Google ScholarGoogle Scholar
  29. [29] Facebook. [n.d.]. Retrieved from MyRocks. http://myrocks.io/.Google ScholarGoogle Scholar
  30. [30] Facebook. [n.d.]. Under the Hood: Building and Open-sourcing RocksDB. Retrieved from https://www.facebook.com/notes/facebook-engineering/under-the-hood-building-and-open-sourcing-rocksdb/10151822347683920/.Google ScholarGoogle Scholar
  31. [31] Gao Yu, Dou Wensheng, Qin Feng, Gao Chushu, Wang Dong, Wei Jun, Huang Ruirui, Zhou Li, and Wu Yongming. 2018. An empirical study on crash recovery bugs in large-scale distributed systems. In Proceedings of the 26th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. [32] Gawlick Dieter and Kinkade David. 1985. Varieties of Concurrency Control in IMS/VS Fast Path. IEEE Database Eng. Bull. 8, 2 (1985), 310.Google ScholarGoogle Scholar
  33. [33] Ghemawat Sanjay and Dean Jeff. 2014. LevelDB, A Fast and Lightweight Key/Value Database Library by Google. Retrieved from https://github.com/google/leveldb.Google ScholarGoogle Scholar
  34. [34] Gugnani Shashank, Lu Xiaoyi, and Panda Dhabaleswar K.. 2018. Analyzing, modeling, and provisioning QoS for NVMe SSDs. In Proceedings of the IEEE/ACM 11th International Conference on Utility and Cloud Computing (UCC'18). IEEE.Google ScholarGoogle ScholarCross RefCross Ref
  35. [35] Hagmann Robert. 1987. Reimplementing the cedar file system using logging and group commit. In Proceedings of the eleventh ACM Symposium on Operating systems principles. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. [36] Han Kyuhwa, Kim Hyukjoong, and Shin Dongkun. 2019. WAL-SSD: Address remapping-based write-ahead-logging solid-state disks. IEEE Trans. Comput. 69, 2 (2019), 260273.Google ScholarGoogle ScholarCross RefCross Ref
  37. [37] Huang Gui, Cheng Xuntao, Wang Jianying, Wang Yujie, He Dengcheng, Zhang Tieying, Li Feifei, Wang Sheng, Cao Wei, and Li Qiang. 2019. X-Engine: An optimized storage engine for large-scale e-commerce transaction processing. In Proceedings of the International Conference on Management of Data (SIGMOD'19). 15 pages. https://doi.org/10.1145/3299869.3314041 Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. [38] Huang Jian, Schwan Karsten, and Qureshi Moinuddin K.. 2014. NVRAM-aware Logging in Transaction Systems. Proceedings of the VLDB Endowment 8, 4 (2014), 389–400. Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. [39] Huang Yihe, Pavlovic Matej, Marathe Virendra, Seltzer Margo, Harris Tim, and Byan Steve. 2018. Closing the performance gap between volatile and persistent key-value stores using cross-referencing logs. In Proceedings of the USENIX Annual Technical Conference (USENIX ATC'18). Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. [40] Im Junsu, Bae Jinwook, Chung Chanwoo, Arvind, and Lee Sungjin. 2020. PinK: High-speed In-storage Key-value Store with Bounded Tails. In Proceedings of the USENIX Annual Technical Conference (USENIX ATC'20). Retrieved from https://www.usenix.org/conference/atc20/presentation/im. Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. [41] Intel. [n.d.]. Breakthrough Performance for Demanding Storage Workloads. https://www.intel.com/content/dam/www/public/us/en/documents/product-briefs/optane-ssd-905p-product-brief.pdf.Google ScholarGoogle Scholar
  42. [42] Intel. [n.d.]. SPDK: Storage Performance Development Kit. Retrieved from https://spdk.io/.Google ScholarGoogle Scholar
  43. [43] Pavlo Andrew, Li Jianhong, and Dong Siying. 2017. NVMRocks: RocksDB on Non-Volatile Memory Systems. Retrieved from http://istc-bigdata.org/index.php/nvmrocks-rocksdb-on-non-volatile-memory-systems/.Google ScholarGoogle Scholar
  44. [44] Kaiyrakhmet Olzhas, Lee Songyi, Nam Beomseok, Noh Sam H., and Choi Young-Ri. 2019. SLM-DB: Single-Level Key-Value Store with Persistent Memory. In Proceedings of the 17th USENIX Conference on File and Storage Technologies (FAST'19). Google ScholarGoogle ScholarDigital LibraryDigital Library
  45. [45] Kang Yangwook, Pitchumani Rekha, Mishra Pratik, Kee Yang-suk, Londono Francisco, Oh Sangyoon, Lee Jongyeol, and Lee Daniel D. G.. 2019. Towards building a high-performance, scale-in key-value storage system. In Proceedings of the 12th ACM International Conference on Systems and Storage. Google ScholarGoogle ScholarDigital LibraryDigital Library
  46. [46] Kannan Sudarsun, Bhat Nitish, Gavrilovska Ada, Arpaci-Dusseau Andrea, and Arpaci-Dusseau Remzi. 2018. Redesigning LSMs for Nonvolatile Memory with NoveLSM. In Proceedings of the USENIX Annual Technical Conference (USENIX ATC'18). Retrieved from https://www.usenix.org/conference/atc18/presentation/kannan. Google ScholarGoogle ScholarDigital LibraryDigital Library
  47. [47] Kim Wook-Hee, Kim Jinwoong, Baek Woongki, Nam Beomseok, and Won Youjip. 2016. NVWAL: Exploiting NVRAM in Write-ahead Logging. ACM SIGPLAN Notices 51, 4 (2016), 385398. Google ScholarGoogle ScholarDigital LibraryDigital Library
  48. [48] Kwon Youngjin, Fingler Henrique, Hunt Tyler, Peter Simon, Witchel Emmett, and Anderson Thomas. 2017. Strata: A cross media file system. In Proceedings of the 26th Symposium on Operating Systems Principles (SOSP'17). 18 pages. https://doi.org/10.1145/3132747.3132770 Google ScholarGoogle ScholarDigital LibraryDigital Library
  49. [49] Lakshman Avinash and Malik Prashant. 2010. Cassandra: A Decentralized Structured Storage System. ACM SIGOPS Operating Systems Review, 44, 2 (2010), 3540. Google ScholarGoogle ScholarDigital LibraryDigital Library
  50. [50] Lee Gyusun, Shin Seokha, Song Wonsuk, Ham Tae Jun, Lee Jae W., and Jeong Jinkyu. 2019. Asynchronous I/O stack: A low-latency kernel I/O stack for ultra-low latency SSDs. In Proceedings of the USENIX Annual Technical Conference (USENIX ATC'19). Google ScholarGoogle ScholarDigital LibraryDigital Library
  51. [51] Lepers Baptiste, Balmau Oana, Gupta Karan, and Zwaenepoel Willy. 2019. KVell: The design and implementation of a fast persistent key-value store. In Proceedings of the 27th ACM Symposium on Operating Systems Principles. Google ScholarGoogle ScholarDigital LibraryDigital Library
  52. [52] Li Wenjie, Jiang Dejun, Xiong Jin, and Bao Yungang. 2020. HiLSM: An LSM-based Key-Value Store for Hybrid NVM-SSD Storage Systems. In Proceedings of the 17th ACM International Conference on Computing Frontiers. 208216. Google ScholarGoogle ScholarDigital LibraryDigital Library
  53. [53] Li Yongkun, Tian Chengjin, Guo Fan, Li Cheng, and Xu Yinlong. 2019. ElasticBF: Elastic bloom filter with hotness awareness for boosting read performance in large key-value stores. In Proceedings of the USENIX Annual Technical Conference (USENIX ATC'19). Google ScholarGoogle ScholarDigital LibraryDigital Library
  54. [54] Lim Hyeontaek, Andersen David G., and Kaminsky Michael. 2016. Towards accurate and fast evaluation of multi-stage log-structured designs. In Proceedings of the 14th USENIX Conference on File and Storage Technologies (FAST'16). Google ScholarGoogle ScholarDigital LibraryDigital Library
  55. [55] Liu Zaoxing, Bai Zhihao, Liu Zhenming, Li Xiaozhou, Kim Changhoon, Braverman Vladimir, Jin Xin, and Stoica Ion. 2019. DistCache: Provable load balancing for large-scale storage systems with distributed caching. In Proceedings of the 17th USENIX Conference on File and Storage Technologies (FAST'19). Retrieved from https://www.usenix.org/conference/fast19/presentation/liu. Google ScholarGoogle ScholarDigital LibraryDigital Library
  56. [56] Lu Lanyue, Pillai Thanumalayan Sankaranarayana, Gopalakrishnan Hariharan, Arpaci-Dusseau Andrea C., and Arpaci-Dusseau Remzi H.. 2017. WiscKey: Separating Keys from Values in SSD-conscious Storage. ACM Transactions on Storage (TOS) 13, 1 (2017), 128. Google ScholarGoogle ScholarDigital LibraryDigital Library
  57. [57] Mohan C., Haderle Don, Lindsay Bruce, Pirahesh Hamid, and Schwarz Peter. 1992. ARIES: A Transaction Recovery Method Supporting Fine-granularity Locking and Partial Rollbacks Using Write-ahead Logging. ACM Transactions on Database Systems (TODS) 17, 1 (1992), 94162. Google ScholarGoogle ScholarDigital LibraryDigital Library
  58. [58] Nishtala Rajesh, Fugal Hans, Grimm Steven, Kwiatkowski Marc, Lee Herman, Li Harry C., McElroy Ryan, Paleczny Mike, Peek Daniel, Saab Paul, Stafford David, Tung Tony, and Venkataramani Venkateshwaran. 2013. Scaling Memcache at Facebook. In Proceedings of the 10th USENIX Symposium on Networked Systems Design and Implementation (NSDI'13). Retrieved from https://www.usenix.org/conference/nsdi13/technical-sessions/presentation/nishtala. Google ScholarGoogle ScholarDigital LibraryDigital Library
  59. [59] Pelley Steven, Wenisch Thomas F., Gold Brian T., and Bridge Bill. 2013. Storage Management in the NVRAM Era. Proceedings of the VLDB Endowment 7, 2 (2013), 121132. Google ScholarGoogle ScholarDigital LibraryDigital Library
  60. [60] Peng Bo, Zhang Haozhong, Yao Jianguo, Dong Yaozu, Xu Yu, and Guan Haibing. 2018. MDev-NVMe: A NVMe storage virtualization solution with mediated pass-through. In Proceedings of the USENIX Annual Technical Conference (USENIX ATC'18). 665676. Google ScholarGoogle ScholarDigital LibraryDigital Library
  61. [61] Qiu S. and Reddy A. L. Narasimha. 2013. NVMFS: A hybrid file system for improving random write in NAND-flash SSD. In Proceedings of the IEEE 29th Symposium on Mass Storage Systems and Technologies (MSST'13).Google ScholarGoogle ScholarCross RefCross Ref
  62. [62] Raina Ashwini, Cidon Asaf, Jamieson Kyle, and Freedman Michael J.. 2020. PrismDB: Read-aware Log-structured Merge Trees for Heterogeneous Storage. Retrieved from https://arxiv.org/abs/2008.02352.Google ScholarGoogle Scholar
  63. [63] Raju Pandian, Kadekodi Rohan, Chidambaram Vijay, and Abraham Ittai. 2017. PebblesDB: Building key-value stores using fragmented log-structured merge trees. In Proceedings of the 26th Symposium on Operating Systems Principles. Google ScholarGoogle ScholarDigital LibraryDigital Library
  64. [64] Ren Kai, Zheng Qing, Arulraj Joy, and Gibson Garth. 2017. SlimDB: A Space-Efficient Key-Value Storage Engine for Semi-Sorted Data. Proceedings of the VLDB Endowment 10, 13 (2017), 20372048. Google ScholarGoogle ScholarDigital LibraryDigital Library
  65. [65] Samsung. Ultra-Low Latency with Samsung Z-NAND SSD. Retrieved from https://www.samsung.com/us/labs/pdfs/collateral/Samsung_Z-NAND_Technology_Brief_v5.pdf.Google ScholarGoogle Scholar
  66. [66] Siying Dong. 2017. Workload Diversity with RocksDB. Retrieved from http://www.hpts.ws/papers/2017/hpts2017_rocksdb.pdf.Google ScholarGoogle Scholar
  67. [67] SPDK. BlobFS (Blobstore Filesystem)—BlobFS Getting Started Guide—RocksDB Integration. Retrieved from https://spdk.io/doc/blobfs.html.Google ScholarGoogle Scholar
  68. [68] Sridharan Vilas, DeBardeleben Nathan, Blanchard Sean, Ferreira Kurt B., Stearley Jon, Shalf John, and Gurumurthi Sudhanva. 2015. Memory Errors in Modern Systems: The Good, the Bad, and the Ugly. ACM SIGARCH Computer Architecture News 43, 1 (2015) 297310.Google ScholarGoogle ScholarDigital LibraryDigital Library
  69. [69] Toshiba. Toshiba Memory Introduces XL-FLASH Storage Class Memory Solution. Retrieved from https://business.kioxia.com/en-us/news/2019/memory-20190805-1.html.Google ScholarGoogle Scholar
  70. [70] Wang Tianzheng and Johnson Ryan. 2014. Scalable Logging through Emerging Non-Volatile Memory. Proceedings of the VLDB Endowment 7, 10 (2014), 865876. Google ScholarGoogle ScholarDigital LibraryDigital Library
  71. [71] Welsh Matt, Culler David, and Brewer Eric. 2001. SEDA: An architecture for well-conditioned, scalable internet services. In Proceedings of the 18th ACM Symposium on Operating Systems Principles (SOSP'01). 14 pages. https://doi.org/10.1145/502034.502057 Google ScholarGoogle ScholarDigital LibraryDigital Library
  72. [72] Wu Kan, Arpaci-Dusseau Andrea, and Arpaci-Dusseau Remzi. 2019. Towards an unwritten contract of Intel Optane SSD. In Proceedings of the 11th USENIX Workshop on Hot Topics in Storage and File Systems (HotStorage 19). Retrieved from https://www.usenix.org/conference/hotstorage19/presentation/wu-kan. Google ScholarGoogle ScholarDigital LibraryDigital Library
  73. [73] Wu Xingbo, Xu Yuehai, Shao Zili, and Jiang Song. 2015. LSM-trie: An LSM-tree-based Ultra-Large key-value store for small data items. In Proceedings of the USENIX Annual Technical Conference (USENIX ATC'15). Google ScholarGoogle ScholarDigital LibraryDigital Library
  74. [74] Xia Fei, Jiang Dejun, Xiong Jin, and Sun Ninghui. 2017. HiKV: A hybrid index key-value store for DRAM-NVM memory systems. In Proceedings of the USENIX Annual Technical Conference (USENIX ATC'17). Google ScholarGoogle ScholarDigital LibraryDigital Library
  75. [75] Xue Shuai, Zhao Shang, Chen Quan, Deng Gang, Liu Zheng, Zhang Jie, Song Zhuo, Ma Tao, Yang Yong, Zhou Yanbo et al. 2020. Spool: Reliable Virtualized NVMe storage pool in public cloud infrastructure. In Proceedings of the USENIX Annual Technical Conference (USENIX ATC'20). 97110. Google ScholarGoogle ScholarDigital LibraryDigital Library
  76. [76] Yang Ziye, Harris James R., Walker Benjamin, Verkamp Daniel, Liu Changpeng, Chang Cunyin, Cao Gang, Stern Jonathan, Verma Vishal, and Paul Luse E.. 2017. SPDK: A development kit to build high performance storage applications. In Proceedings of the IEEE International Conference on Cloud Computing Technology and Science (CloudCom'17). IEEE.Google ScholarGoogle ScholarCross RefCross Ref
  77. [77] Yang Ziye, Liu Changpeng, Zhou Yanbo, Liu Xiaodong, and Cao Gang. 2018. SPDK Vhost-NVMe: Accelerating I/Os in Virtual Machines on NVMe SSDs via User Space Vhost Target. In Proceedings of the IEEE 8th International Symposium on Cloud and Service Computing (SC'18). IEEE, 6776.Google ScholarGoogle ScholarCross RefCross Ref
  78. [78] Yao Ting, Zhang Yiwen, Wan Jiguang, Cui Qiu, Tang Liu, Jiang Hong, Xie Changsheng, and He Xubin. 2020. MatrixKV: Reducing write stalls and write amplification in LSM-tree-based KV stores with matrix container in NVM. In Proceedings of the USENIX Annual Technical Conference (USENIX ATC'20). 1731. Google ScholarGoogle ScholarDigital LibraryDigital Library
  79. [79] Yoon Hobin, Yang Juncheng, Kristjansson Sveinn Fannar, Sigurdarson Steinn E., Vigfusson Ymir, and Gavrilovska Ada. 2018. Mutant: Balancing storage cost and latency in LSM-Tree data stores. In Proceedings of the ACM Symposium on Cloud Computing (SoCC'18). 12 pages. https://doi.org/10.1145/3267809.3267846 Google ScholarGoogle ScholarDigital LibraryDigital Library
  80. [80] Zhang Jie, Kwon Miryeong, Swift Michael, and Jung Myoungsoo. 2020. Scalable parallel flash firmware for many-core architectures. In Proceedings of the 18th USENIX Conference on File and Storage Technologies (FAST'20). Retrieved from https://www.usenix.org/conference/fast20/presentation/zhang-jie. Google ScholarGoogle ScholarDigital LibraryDigital Library
  81. [81] Zhang Qiang, Li Yongkun, Lee Patrick P. C., Xu Yinlong, Cui Qiu, and Tang Liu. 2020. UniKV: Toward high-performance and scalable KV Storage in Mixed Workloads via Unified Indexing. In Proceedings of the 36th IEEE International Conference on Data Engineering (ICDE'20).Google ScholarGoogle ScholarCross RefCross Ref
  82. [82] Zhang Teng, Wang Jianying, Cheng Xuntao, Xu Hao, Yu Nanlong, Huang Gui, Zhang Tieying, He Dengcheng, Li Feifei, Cao Wei, et al. 2020. FPGA-Accelerated compactions for LSM-based key-value store. In Proceedings of the 18th USENIX Conference on File and Storage Technologies (FAST'20). Google ScholarGoogle ScholarDigital LibraryDigital Library
  83. [83] Zheng Shengan, Hoseinzadeh Morteza, and Swanson Steven. 2019. Ziggurat: A tiered file system for non-volatile main memories and disks. In Proceedings of the 17th USENIX Conference on File and Storage Technologies (FAST'19). Retrieved from https://www.usenix.org/conference/fast19/presentation/zheng. Google ScholarGoogle ScholarDigital LibraryDigital Library
  84. [84] Zheng Wenting, Tu Stephen, Kohler Eddie, and Liskov Barbara. 2014. Fast databases with fast durability and recovery through multicore parallelism. In Proceedings of the 11th USENIX Symposium on Operating Systems Design and Implementation (OSDI'14). Google ScholarGoogle ScholarDigital LibraryDigital Library
  85. [85] Zhu Xiaowei, Feng Guanyu, Serafini Marco, Ma Xiaosong, Yu Jiping, Xie Lei, Aboulnaga Ashraf, and Chen Wenguang. 2020. LiveGraph: A transactional graph storage system with purely sequential adjacency list scans. Proc. VLDB Endow. 13, 7 (Mar. 2020), 10201034. https://doi.org/10.14778/3384345.3384351 Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Leveraging NVMe SSDs for Building a Fast, Cost-effective, LSM-tree-based KV Store

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in

    Full Access

    • Published in

      cover image ACM Transactions on Storage
      ACM Transactions on Storage  Volume 17, Issue 4
      November 2021
      201 pages
      ISSN:1553-3077
      EISSN:1553-3093
      DOI:10.1145/3487989
      • Editor:
      • Sam H. Noh
      Issue’s Table of Contents

      Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 15 October 2021
      • Accepted: 1 August 2021
      • Received: 1 July 2021
      Published in tos Volume 17, Issue 4

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • research-article
      • Refereed

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Full Text

    View this article in Full Text.

    View Full Text

    HTML Format

    View this article in HTML Format .

    View HTML Format
    About Cookies On This Site

    We use cookies to ensure that we give you the best experience on our website.

    Learn more

    Got it!