skip to main content
10.1145/3337821.3337836acmotherconferencesArticle/Chapter ViewAbstractPublication PagesicppConference Proceedingsconference-collections
research-article

On Integration of Appends and Merges in Log-Structured Merge Trees

Published:05 August 2019Publication History

ABSTRACT

As widely used indices in key-value stores, the Log-Structured Merge-tree (LSM-tree) and its variants suffer from severe write amplification due to frequent merges in compactions for write-intensive applications. To address the problem, we first propose the Log-Structured Append-tree (LSA-tree), which tries to compact data with appends instead of merges, significantly reduces the write amplification and solves the issues existed in current append trees. However LSA increases read and space amplifications. Furthermore based on LSA, we design the Integrated Append/Merge-tree (IAM-tree). IAM selects appends or merges in compaction operations according to the size of memory-cached data. Theoretical analysis shows that IAM reduces the write amplification of LSM while keep the same read and space amplification.

We implement IAM as a user library named IamDB. Experiments show that its write amplification is much less than that of LSM, only 8.71 vs. 19.00 for 1TB data with 64GB memory. Compared with nicely tuned LevelDB and RocksDB, IamDB provides 1.4-2.7× and 1.6-1.9× better write throughput, saves 12% and 10% disk space respectively, as well as the comparable read and scan performance. At the meantime IamDB achieves the most stable tail latency.

References

  1. Oana Balmau, Rachid Guerraoui, Vasileios Trigonakis, and Igor Zablotchi. 2017. FloDB: Unlocking memory in persistent key-value stores. In Proceedings of EuroSys'17. 80--94. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Burton H Bloom. 1970. Space/time trade-offs in hash coding with allowable errors. Commun. ACM 13, 7 (1970), 422--426. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Fay Chang, Jeffrey Dean, Sanjay Ghemawat, Wilson C Hsieh, Deborah A Wallach, Mike Burrows, Tushar Chandra, Andrew Fikes, and Robert E Gruber. 2008. Bigtable: A distributed storage system for structured data. TOCS 26, 2 (2008), 4. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Niv Dayan and Stratos Idreos. 2018. Dostoevsky: Better Space-Time Trade-Offs for LSM-Tree Based Key-Value Stores via Adaptive Removal of Superfluous Merging. In Proceedings of SIGMOD'18. 505--520. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Facebook. 2017. Write stalls. https://github.com/facebook/rocksdb/wiki/writestalls.Google ScholarGoogle Scholar
  6. Facebook. 2019. MyRocks. http://myrocks.io/.Google ScholarGoogle Scholar
  7. Facebook. 2019. RocksDB. https://rocksdb.org/.Google ScholarGoogle Scholar
  8. Google. 2019. LevelDB. http://leveldb.org/.Google ScholarGoogle Scholar
  9. Sudarsun Kannan, Nitish Bhat, Ada Gavrilovska, Andrea ArpaciDusseau, and Remzi Arpaci-Dusseau. 2018. Redesigning LSMs for nonvolatile memory with NoveLSM. In Proceedings of ATC'18. 993--1005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Avinash Lakshman and Prashant Malik. 2010. Cassandra: A decentralized structured storage system. ACM SIGOPS Operating Systems Review 44, 2(2010), 35--40. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Lanyue Lu, Thanumalayan Sankaranarayana Pillai, Andrea C Arpacidusseau, and Remzi H Arpacidusseau. 2016. WiscKey: Separating keys from values in SSD-conscious storage. In Proceedings of FAST'16. 133--148. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Chen Luo and Michael J. Carey. 2018. LSM-based Storage Techniques: A Survey. https://arxiv.org/abs/1812.07527.Google ScholarGoogle Scholar
  13. Patrick O'Neil, Edward Cheng, Dieter Gawlick, and Elizabeth O'Neil. 1996. The log-structured merge-tree (LSM-tree). Acta Informatica 33, 4 (1996), 351--385. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Raju Pandian, Kadekodi Rohan, Chidambaram Vijay, and Abraham Ittai. 2017. PebblesDB: Building key-value stores using fragmented log-structured merge trees. In Proceedings of SOSP'17. 497--514. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Kai Ren and Garth A Gibson. 2013. TABLEFS: enhancing metadata efficiency in the local file system. In Proceedings of ATC'13. 145--156. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Kai Ren, Qing Zheng, Joy Arulraj, and Garth Gibson. 2017. SlimDB: A space-efficient key-value storage engine for semi-sorted data. In Proceedings of the VLDB Endowment, Vol. 10. 2037--2048. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Russell Sears and Raghu Ramakrishnan. 2012. bLSM: a general purpose log structured merge tree. In Proceedings of SIGMOD'12. ACM, 217--228. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Hoang Tam Vo, Sheng Wang, Divyakant Agrawal, Gang Chen, and Beng Chin Ooi. 2012. LogBase: a scalable log-structured database system in the cloud. Proceedings of the VLDB Endowment 5 (2012), 1004--1015. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Wu Xingbo, Xu Yuehai, Shao Zili, and Jiang Song. 2015. LSM-trie: An LSM-tree-based ultra-large key-value store for small data. In Proceedings of ATC'15. 71--82. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Ting Yao, Jiguang Wan, Ping Huang, Xubin He, Qingxin Gui, Fei Wu, and Changsheng Xie. 2017. A light-weight compaction tree to reduce I/O amplification toward efficient key-value stores. In Proceedings of MSST'17.Google ScholarGoogle Scholar
  21. Huanchen Zhang, Hyeontaek Lim, Viktor Leis, David G Andersen, Michael Kaminsky, Kimberly Keeton, and Andrew Pavlo. 2018. SuRF: Practical range query filtering with fast succinct tries. In Proceedings of SIGMOD'18. 323--336. Google ScholarGoogle ScholarDigital LibraryDigital Library

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
  • Published in

    cover image ACM Other conferences
    ICPP '19: Proceedings of the 48th International Conference on Parallel Processing
    August 2019
    1107 pages
    ISBN:9781450362955
    DOI:10.1145/3337821

    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: 5 August 2019

    Permissions

    Request permissions about this article.

    Request Permissions

    Check for updates

    Qualifiers

    • research-article
    • Research
    • Refereed limited

    Acceptance Rates

    Overall Acceptance Rate91of313submissions,29%

PDF Format

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader