skip to main content
research-article

TeksDB: Weaving Data Structures for a High-Performance Key-Value Store

Published:26 March 2019Publication History
Skip Abstract Section

Abstract

In this paper, we examine the design tradeoffs of existing in-memory data structures of a state-of-the-art key-value store. We observe that no data structures provide both fast point-accesses and consistent ranged- retrievals, and naive amalgamations of existing structures fail to get the best of both worlds. Furthermore, our experiments reveal a performance anomaly when increasing the memory size: as more key-value pairs are maintained in memory, the shortcomings of the data structures exacerbate. To address the above problems, we present TeksDB, a fast and consistent key-value store with a novel in-memory data structure, which effciently handles both point- and ranged- accesses at a modest increase in memory footprint. Our evaluation demonstrates that TeksDB outperforms RocksDB by 3.6×, 9×, and 4.5× for get, scan, and range_query, respectively. The effectiveness of TeksDB extends to real-world workloads, achieving up to 3.3× speedup for YCSB.

References

  1. Ardb. 2013. Ardb. https://github.com/yinqiwen/ardb .Google ScholarGoogle Scholar
  2. Berk Atikoglu, Yuehai Xu, Eitan Frachtenberg, Song Jiang, and Mike Paleczny. 2012. Workload analysis of a large-scale key-value store. In ACM SIGMETRICS/PERFORMANCE Joint International Conference on Measurement and Modeling of Computer Systems, SIGMETRICS '12, London, United Kingdom, June 11--15, 2012 . ACM, NewYork, NY, USA, 53--64. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Oana Balmau, Diego Didona, Rachid Guerraoui, Willy Zwaenepoel, Huapeng Yuan, Aashray Arora, Karan Gupta, and Pavan Konka. 2017a. TRIAD: Creating Synergies Between Memory, Disk and Log in Log Structured Key-Value Stores. In 2017 USENIX Annual Technical Conference, USENIX ATC 2017, Santa Clara, CA, USA, July 12--14, 2017. USENIX, Berkely, CA, USA, 363--375. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Oana Balmau, Rachid Guerraoui, Vasileios Trigonakis, and Igor Zablotchi. 2017b. FloDB: Unlocking Memory in Persistent Key-Value Stores. In Proceedings of the Twelfth European Conference on Computer Systems, EuroSys 2017, Belgrade, Serbia, April 23--26, 2017. ACM, NewYork, NY, USA, 80--94. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Hal Berenson, Phil Bernstein, Jim Gray, Jim Melton, Elizabeth O'Neil, and Patrick O'Neil. 1995. A critique of ANSI SQL isolation levels. In ACM SIGMOD Record, Vol. 24. ACM, NewYork, NY, USA, 1--10. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Philip A Bernstein and Nathan Goodman. 1981. Concurrency control in distributed database systems. ACM Computing Surveys (CSUR) , Vol. 13, 2 (1981), 185--221. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Lucas Braun, Thomas Etter, Georgios Gasparis, Martin Kaufmann, Donald Kossmann, Daniel Widmer, Aharon Avitzur, Anthony Iliopoulos, Eliezer Levy, and Ning Liang. 2015. Analytics in Motion: High Performance Event-Processing AND Real-Time Analytics in the Same Database. In Proceedings of the 2015 ACM International Conference on Management of Data, SIGMOD Conference 2015, Melbourne, Victoria, Australia, May 31 - June 4, 2015. ACM, NewYork, NY, USA, 251--264. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. cameron314. 2014. Concurrent Queue. https://github.com/cameron314/concurrentqueue.git.Google ScholarGoogle Scholar
  9. Fay Chang, Jeffrey Dean, Sanjay Ghemawat, Wilson C. Hsieh, Deborah A. Wallach, Michael Burrows, Tushar Chandra, Andrew Fikes, and Robert E. Gruber. 2008. Bigtable: A Distributed Storage System for Structured Data. ACM Trans. Comput. Syst. , Vol. 26, 2 (2008), 4:1--4:26. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Brian F. Cooper, Adam Silberstein, Erwin Tam, Raghu Ramakrishnan, and Russell Sears. 2010. Benchmarking cloud serving systems with YCSB. In Proceedings of the 1st ACM Symposium on Cloud Computing, SoCC 2010, Indianapolis, Indiana, USA, June 10--11, 2010 . ACM, NewYork, NY, USA, 143--154. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Niv Dayan, Manos Athanassoulis, and Stratos Idreos. 2017. Monkey: Optimal Navigable Key-Value Store. In Proceedings of the 2017 ACM International Conference on Management of Data, SIGMOD Conference 2017, Chicago, IL, USA, May 14--19, 2017. ACM, NewYork, NY, USA, 79--94. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Giuseppe DeCandia, Deniz Hastorun, Madan Jampani, Gunavardhan Kakulapati, Avinash Lakshman, Alex Pilchin, Swaminathan Sivasubramanian, Peter Vosshall, and Werner Vogels. 2007. Dynamo: amazon's highly available key-value store. In Proceedings of the 21st ACM Symposium on Operating Systems Principles 2007, SOSP 2007, Stevenson, Washington, USA, October 14--17, 2007. ACM, NewYork, NY, USA, 205--220. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Facebook. 2012. RocksDB. https://github.com/facebook/rocksdb .Google ScholarGoogle Scholar
  14. Facebook. 2018. MyRocks. https://myrocks.io .Google ScholarGoogle Scholar
  15. The Apache Software Foundation. 2008. Cassandra. https://github.com/apache/cassandra.Google ScholarGoogle Scholar
  16. FoundationDB. 2013. FoundationDB. https://www.foundationdb.org/.Google ScholarGoogle Scholar
  17. Guy Golan-Gueta, Edward Bortnikov, Eshcar Hillel, and Idit Keidar. 2015. Scaling concurrent log-structured data stores. In Proceedings of the Tenth European Conference on Computer Systems, EuroSys 2015, Bordeaux, France, April 21--24, 2015 . ACM, NewYork, NY, USA, 32:1--32:14. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Google. 2011. LevelDB. https://github.com/google/leveldb .Google ScholarGoogle Scholar
  19. Tyler Harter, Dhruba Borthakur, Siying Dong, Amitanand S. Aiyer, Liyin Tang, Andrea C. Arpaci-Dusseau, and Remzi H. Arpaci-Dusseau. 2014. Analysis of HDFS under HBase: a facebook messages case study. In Proceedings of the 12th USENIX conference on File and Storage Technologies, FAST 2014, Santa Clara, CA, USA, February 17--20, 2014. USENIX, Berkely, CA, USA, 199--212. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. HyperDex. 2011. HyperLevelDB. https://github.com/rescrv/HyperLevelDB .Google ScholarGoogle Scholar
  21. Sudarsun Kannan, Nitish Bhat, Ada Gavrilovska, Andrea C. Arpaci-Dusseau, and Remzi H. Arpaci-Dusseau. 2018. Redesigning LSMs for Nonvolatile Memory with NoveLSM. In 2018 USENIX Annual Technical Conference, USENIX ATC 2018, Boston, MA, USA, July 11--13, 2018. USENIX, Berkely, CA, USA, 993--1005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Dong-Yun Lee, Kisik Jeong, Sang-Hoon Han, Jin-Soo Kim, Joo-Young Hwang, and Sangyeun Cho. 2017. Understanding write behaviors of storage backends in Ceph object store. In Proceedings of the 2017 International Conference on Massive Storage Systems and Technology . Santa Clara University, Santa Clara, CA, USA.Google ScholarGoogle Scholar
  23. Eunji Lee, Youil Han, Suli Yang, Andrea C. Arpaci-Dusseau, and Remzi H. Arpaci-Dusseau. 2018. How to Teach an Old File System Dog New Object Store Tricks. In 10th USENIX Workshop on Hot Topics in Storage and File Systems, HotStorage 2018, Boston, MA, USA, July 9--10, 2018. USENIX, Berkely, CA, USA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. LMDB. 2011. LMDB. https://symas.com/lmdb/.Google ScholarGoogle Scholar
  25. Simon Loesing, Markus Pilman, Thomas Etter, and Donald Kossmann. 2015. On the Design and Scalability of Distributed Shared-Data Databases. In Proceedings of the 2015 ACM SIGMOD International Conference on Management of Data, Melbourne, Victoria, Australia, May 31 - June 4, 2015. ACM, NewYork, NY, USA, 663--676. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Lanyue Lu, Thanumalayan Sankaranarayana Pillai, Hariharan Gopalakrishnan, Andrea C Arpaci-Dusseau, and Remzi H Arpaci-Dusseau. 2017. WiscKey: Separating keys from values in SSD-conscious storage. ACM Transactions on Storage (TOS) , Vol. 13, 1 (2017), 5. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Memcached. 2003. Memcached. https://memcached.org .Google ScholarGoogle Scholar
  28. Alexander Merritt, Ada Gavrilovska, Yuan Chen, and Dejan Milojicic. 2017. Concurrent log-structured memory for many-core key-value stores. Proceedings of the VLDB Endowment , Vol. 11, 4 (2017), 458--471. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Inc. MongoDB. 2018. MongoDB. https://www.mongodb.com.Google ScholarGoogle Scholar
  30. Patrick E. O'Neil, Edward Cheng, Dieter Gawlick, and Elizabeth J. O'Neil. 1996. The Log-Structured Merge-Tree (LSM-Tree). Acta Inf. , Vol. 33, 4 (1996), 351--385. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Daniel Peng and Frank Dabek. 2010. Large-scale Incremental Processing Using Distributed Transactions and Notifications. In 9th USENIX Symposium on Operating Systems Design and Implementation, OSDI 2010, October 4--6, 2010, Vancouver, BC, Canada, Proceedings . USENIX, Berkely, CA, USA, 251--264. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Markus Pilman, Kevin Bocksrocker, Lucas Braun, Renato Marroquin, and Donald Kossmann. 2017. Fast Scans on Key-Value Stores. PVLDB , Vol. 10, 11 (2017), 1526--1537. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. William Pugh. 1990. Skip Lists: A Probabilistic Alternative to Balanced Trees. Commun. ACM , Vol. 33, 6 (1990), 668--676. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. Pandian Raju, Rohan Kadekodi, Vijay Chidambaram, and Ittai Abraham. 2017. PebblesDB: Building Key-Value Stores using Fragmented Log-Structured Merge Trees. In Proceedings of the 26th Symposium on Operating Systems Principles, Shanghai, China, October 28--31, 2017 . ACM, NewYork, NY, USA, 497--514. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. Redis. 2009. Redis. https://redis.io .Google ScholarGoogle Scholar
  36. Margo Seltzer and Keith Bostic. 1994. Berkeley DB. http://https://www.oracle.com/database/berkeley-db/index.html .Google ScholarGoogle Scholar
  37. TokyoCabinet. 2009. TokyoCabinet. http://fallabs.com/tokyocabinet/.Google ScholarGoogle Scholar
  38. Sheng Wang, Tien Tuan Anh Dinh, Qian Lin, Zhongle Xie, Meihui Zhang, Qingchao Cai, Gang Chen, Beng Chin Ooi, and Pingcheng Ruan. 2018. ForkBase: An Efficient Storage Engine for Blockchain and Forkable Applications. PVLDB , Vol. 11, 10 (2018), 1137--1150. Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. Sage A. Weil, Scott A. Brandt, Ethan L. Miller, Darrell D. E. Long, and Carlos Maltzahn. 2006. Ceph: A Scalable, High-Performance Distributed File System. In 7th Symposium on Operating Systems Design and Implementation (OSDI '06), November 6--8, Seattle, WA, USA. USENIX, Berkely, CA, USA, 307--320. Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. WiredTiger. 2016. WiredTiger. http://www.wiredtiger.com/.Google ScholarGoogle Scholar

Index Terms

  1. TeksDB: Weaving Data Structures for a High-Performance Key-Value 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 Proceedings of the ACM on Measurement and Analysis of Computing Systems
                Proceedings of the ACM on Measurement and Analysis of Computing Systems  Volume 3, Issue 1
                March 2019
                600 pages
                EISSN:2476-1249
                DOI:10.1145/3322205
                Issue’s Table of Contents

                Copyright © 2019 ACM

                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 the author(s) 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: 26 March 2019
                Published in pomacs Volume 3, Issue 1

                Permissions

                Request permissions about this article.

                Request Permissions

                Check for updates

                Qualifiers

                • research-article

              PDF Format

              View or Download as a PDF file.

              PDF

              eReader

              View online with eReader.

              eReader