Nothing Special   »   [go: up one dir, main page]

skip to main content
10.5555/3386691.3386713guideproceedingsArticle/Chapter ViewAbstractPublication PagesfastConference Proceedingsconference-collections
Article

FPGA-accelerated compactions for LSM-based key-value store

Published: 24 February 2020 Publication History

Abstract

Log-Structured Merge Tree (LSM-tree) key-value (KV) stores have been widely deployed in the industry due to its high write efficiency and low costs as a tiered storage. To maintain such advantages, LSM-tree relies on a background compaction operation to merge data records or collect garbages for housekeeping purposes. In this work, we identify that slow compactions jeopardize the system performance due to unchecked oversized levels in the LSM-tree, and resource contentions for the CPU and the I/O. We further find that the rising I/O capabilities of the latest disk storage have pushed compactions to be bounded by CPUs when merging short KVs. This causes both query/transaction processing and background compactions to compete for the bottlenecked CPU resources extensively in an LSM-tree KV store.
In this paper, we propose to offload compactions to FPGAs aiming at accelerating compactions and reducing the CPU bottleneck for storing short KVs. Evaluations have shown that the proposed FPGA-offloading approach accelerates compactions by 2 to 5 times, improves the system throughput by up to 23%, and increases the energy efficiency (number of transactions per watt) by up to 31.7%, compared with the fine-tuned CPU-only baseline. Without loss of generality, we implement our proposal in X-Engine, a latest LSM-tree storage engine.

References

[1]
Oliver Arnold, Sebastian Haas, Gerhard Fettweis, Benjamin Schlegel, Thomas Kissinger, and Wolfgang Lehner. An application-specific instruction set for accelerating set-oriented database primitives. In Proceedings of the 2014 International Conference on Management of Data (SIGMOD), pages 767-778. ACM, 2014.
[2]
Fay Chang, Jeffrey Dean, Sanjay Ghemawat, Wilson C Hsieh, Deborah A Wallach, Mike Burrows, Tushar Chandra, Andrew Fikes, and Robert E Gruber. Bigtable: A distributed storage system for structured data. ACM Transactions on Computer Systems (TOCS), 26(2):4, 2008.
[3]
Xuntao Cheng, Bingsheng He, Mian Lu, Chiew Tong Lau, Huynh Phung Huynh, and Rick Siow Mong Goh. Efficient query processing on many-core architectures: A case study with intel xeon phi processor. In Proceedings of the 2016 International Conference on Management of Data, pages 2081-2084. ACM, 2016.
[4]
Brian F Cooper, Adam Silberstein, Erwin Tam, Raghu Ramakrishnan, and Russell Sears. Benchmarking cloud serving systems with ycsb. In Proceedings of the 1st ACM symposium on Cloud computing, pages 143-154. ACM, 2010.
[5]
Niv Dayan, Manos Athanassoulis, and Stratos Idreos. Monkey: Optimal navigable key-value store. In Proceedings of the 2017 International Conference on Management of Data (SIGMOD), pages 79-94. ACM, 2017.
[6]
Niv Dayan and Stratos Idreos. Dostoevsky: Better space-time trade-offs for lsm-tree based key-value stores via adaptive removal of superfluous merging. In Proceedings of the 2018 International Conference on Management of Data (SIGMOD), pages 505-520. ACM, 2018.
[7]
Niv Dayan and Stratos Idreos. The log-structured merge-bush & the wacky continuum. In Proceedings of the 2019 International Conference on Management of Data (SIGMOD), 2019.
[8]
Jeff Dean and Sanjay Ghemawat. Leveldb. https://github.com/google/leveldb, 2020.
[9]
Giuseppe DeCandia, Deniz Hastorun, Madan Jampani, Gunavardhan Kakulapati, Avinash Lakshman, Alex Pilchin, Swaminathan Sivasubramanian, Peter Vosshall, and Werner Vogels. Dynamo: amazon's highly available key-value store. In ACM SIGOPS operating systems review, pages 205-220. ACM, 2007.
[10]
Christopher Dennl, Daniel Ziener, and Jurgen Teich. On-the-fly composition of fpga-based sql query accelerators using a partially reconfigurable module library. In Field-Programmable Custom Computing Machines (FCCM), 2012 IEEE 20th Annual International Symposium on, pages 45-52. IEEE, 2012.
[11]
Christopher Dennl, Daniel Ziener, and Jürgen Teich. Acceleration of sql restrictions and aggregations through fpga-based dynamic partial reconfiguration. In Field-Programmable Custom Computing Machines (FCCM), 2013 IEEE 21st Annual International Symposium on, pages 25-28. IEEE, 2013.
[12]
David J. DeWitt, Shahram Ghandeharizadeh, Donovan A. Schneider, Allan Bricker, H-I Hsiao, and Rick Rasmussen. The gamma database machine project. IEEE Transactions on Knowledge and data engineering, 2(1):44-62, 1990.
[13]
Siying Dong, Mark Callaghan, Leonidas Galanis, Dhruba Borthakur, Tony Savor, and Michael Strum. Optimizing space amplification in rocksdb. In CIDR, volume 3, page 3, 2017.
[14]
Phil Francisco et al. The netezza data appliance architecture: A platform for high performance data warehousing and analytics. IBM Redbooks, 2011.
[15]
Bingsheng He, Mian Lu, Ke Yang, Rui Fang, Naga K Govindaraju, Qiong Luo, and Pedro V Sander. Relational query coprocessing on graphics processors. ACM Transactions on Database Systems (TODS), 34(4):21, 2009.
[16]
Gui Huang, Xuntao Cheng, Jianying Wang, Yujie Wang, Dengcheng He, Tieying Zhang, Feifei Li, Sheng Wang, Wei Cao, and Qiang Li. X-engine: An optimized storage engine for large-scale e-commerce transaction processing. In Proceedings of the 2019 International Conference on Management of Data (SIGMOD), pages 651- 665. ACM, 2019.
[17]
Balakrishna R Iyer. Hardware assisted sorting in ibm's db2 dbms. In International Conference on Management of Data, COMAD 2005b, 2005.
[18]
Christopher Jermaine, Edward Omiecinski, and Wai Gen Yee. The partitioned exponential file for database storage management. The VLDB Journal--The International Journal on Very Large Data Bases, 16(4):417- 437, 2007.
[19]
Kaan Kara and Gustavo Alonso. Fast and robust hashing for database operators. In Field Programmable Logic and Applications (FPL), 2016 26th International Conference on, pages 1-4. IEEE, 2016.
[20]
Kaan Kara, Jana Giceva, and Gustavo Alonso. Fpga-based data partitioning. In Proceedings of the 2017 ACM International Conference on Management of Data, pages 433-445. ACM, 2017.
[21]
Rene Mueller, Jens Teubner, and Gustavo Alonso. Streams on wires: a query compiler for fpgas. Proceedings of the VLDB Endowment, 2(1):229-240, 2009.
[22]
Mohammadreza Najafi, Mohammad Sadoghi, and Hans-Arno Jacobsen. Flexible query processor on fpgas. Proceedings of the VLDB Endowment, 6(12):1310-1313, 2013.
[23]
Patrick O'Neil, Edward Cheng, Dieter Gawlick, and Elizabeth O'Neil. The log-structured merge-tree (lsm-tree). Acta Informatica, 33(4):351-385, 1996.
[24]
William Pugh. Skip lists: a probabilistic alternative to balanced trees. Communications of the ACM, 33(6):668- 676, 1990.
[25]
RocksDB. A persistent key-value store for fast storage environments. https://rocksdb.org/, 2020.
[26]
Facebook RocksDB. Performance benchmarks. https://github.com/facebook/rocksdb/wiki/Performance-Benchmarks, 2019.
[27]
Mohammad Sadoghi, Martin Labrecque, Harsh Singh, Warren Shum, and Hans-Arno Jacobsen. Efficient event processing through reconfigurable hardware for algorithmic trading. Proceedings of the VLDB Endowment, 3(1-2):1525-1528, 2010.
[28]
Russell Sears and Raghu Ramakrishnan. blsm: a general purpose log structured merge tree. In Proceedings of the 2012 International Conference on Management of Data (SIGMOD), pages 217-228. ACM, 2012.
[29]
Pradeep Shetty, Richard P Spillane, Ravikant Malpani, Binesh Andrews, Justin Seyster, and Erez Zadok. Building workload-independent storage with vt-trees. In FAST, pages 17-30, 2013.
[30]
David Sidler, Zsolt István, Muhsen Owaida, and Gustavo Alonso. Accelerating pattern matching queries in hybrid cpu-fpga architectures. In Proceedings of the 2017 International Conference on Management of Data (SIGMOD), pages 403-415. ACM, 2017.
[31]
David Sidler, Zsolt István, Muhsen Owaida, Kaan Kara, and Gustavo Alonso. doppiodb: A hardware accelerated database. In Proceedings of the 2017 International Conference on Management of Data (SIGMOD), pages 1659-1662. ACM, 2017.
[32]
Dimitris Tsirogiannis, Stavros Harizopoulos, and Mehul A Shah. Analyzing the energy efficiency of a database server. In Proceedings of the 2010 International Conference on Management of Data (SIGMOD), pages 231-242. ACM, 2010.
[33]
Zeke Wang, Kaan Kara, Hantian Zhang, Gustavo Alonso, Onur Mutlu, and Ce Zhang. Accelerating generalized linear models with mlweaving: a one-size-fits-all system for any-precision learning. Proceedings of the VLDB Endowment, 12(7):807-821, 2019.
[34]
Ronald Weiss. A technical overview of the oracle exadata database machine and exadata storage server. Oracle White Paper. Oracle Corporation, Redwood Shores, 2012.
[35]
MongoDB WiredTiger. Wiredtiger. https://github.com/wiredtiger/wiredtiger.
[36]
De Witt. Direct-a multiprocessor organization for supporting relational database management systems. IEEE Transactions on Computers, 100(6):395-406, 1979.
[37]
Louis Woods, Zsolt István, and Gustavo Alonso. Ibex: An intelligent storage engine with support for advanced sql offloading. Proceedings of the VLDB Endowment, 7(11):963-974, 2014.
[38]
Lisa Wu, Andrea Lottarini, Timothy K. Paine, Martha A. Kim, and Kenneth A. Ross. Q100: The architecture and design of a database processing unit. SIGPLAN Not., 49(4):255-268, February 2014.
[39]
Xilinx. Ultrascale architecture and product data sheet: Overview. https://www.xilinx.com/support/documentation/data_sheets/ds890-ultrascale-overview.pdf, 2019.
[40]
Zigang Zhang, Yinliang Yue, Bingsheng He, Jin Xiong, Mingyu Chen, Lixin Zhang, and Ninghui Sun. Pipelined compaction for the lsm-tree. In Parallel and Distributed Processing Symposium, 2014 IEEE 28th International, pages 777-786. IEEE, 2014.
[41]
Shijie Zhou, Rajgopal Kannan, Yu Min, and Viktor K Prasanna. Fastcf: Fpga-based accelerator for stochastic-gradient-descent-based collaborative filtering. In Proceedings of the 2018 ACM/SIGDA International Symposium on Field-Programmable Gate Arrays, pages 259- 268. ACM, 2018.
[42]
Shijie Zhou, Rajgopal Kannan, Hanqing Zeng, and Viktor K Prasanna. An fpga framework for edge-centric graph processing. In Proceedings of the 15th ACM International Conference on Computing Frontiers, pages 69-77. ACM, 2018.

Cited By

View all
  • (2024)SQL2FPGA: Automated Acceleration of SQL Query Processing on Modern CPU-FPGA PlatformsACM Transactions on Reconfigurable Technology and Systems10.1145/367484317:3(1-28)Online publication date: 2-Jul-2024
  • (2024)An LSM Tree Augmented with B+ Tree on Nonvolatile MemoryACM Transactions on Storage10.1145/363347520:1(1-24)Online publication date: 30-Jan-2024
  • (2024)Towards flexibility and robustness of LSM treesThe VLDB Journal — The International Journal on Very Large Data Bases10.1007/s00778-023-00826-933:4(1105-1128)Online publication date: 1-Jul-2024
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image Guide Proceedings
FAST'20: Proceedings of the 18th USENIX Conference on File and Storage Technologies
February 2020
337 pages
ISBN:9781939133120

Sponsors

  • VMware
  • NetApp
  • Google Inc.
  • NSF

Publisher

USENIX Association

United States

Publication History

Published: 24 February 2020

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 23 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2024)SQL2FPGA: Automated Acceleration of SQL Query Processing on Modern CPU-FPGA PlatformsACM Transactions on Reconfigurable Technology and Systems10.1145/367484317:3(1-28)Online publication date: 2-Jul-2024
  • (2024)An LSM Tree Augmented with B+ Tree on Nonvolatile MemoryACM Transactions on Storage10.1145/363347520:1(1-24)Online publication date: 30-Jan-2024
  • (2024)Towards flexibility and robustness of LSM treesThe VLDB Journal — The International Journal on Very Large Data Bases10.1007/s00778-023-00826-933:4(1105-1128)Online publication date: 1-Jul-2024
  • (2023)RBC: A bandwidth controller to reduce write-stalls and tail latencyProceedings of the 52nd International Conference on Parallel Processing10.1145/3605573.3605601(213-222)Online publication date: 7-Aug-2023
  • (2023)FrozenHot Cache: Rethinking Cache Management for Modern HardwareProceedings of the Eighteenth European Conference on Computer Systems10.1145/3552326.3587446(557-573)Online publication date: 8-May-2023
  • (2021)Breaking down memory wallsProceedings of the VLDB Endowment10.14778/3430915.343091614:3(241-254)Online publication date: 9-Dec-2021
  • (2021)Writeback Modeling: Theory and Application to Zipfian WorkloadsProceedings of the International Symposium on Memory Systems10.1145/3488423.3519331(1-14)Online publication date: 27-Sep-2021
  • (2021)Leveraging NVMe SSDs for Building a Fast, Cost-effective, LSM-tree-based KV StoreACM Transactions on Storage10.1145/348096317:4(1-29)Online publication date: 15-Oct-2021
  • (2021)Elastic and Stable Compaction for LSM-treeProceedings of the 30th ACM International Conference on Information & Knowledge Management10.1145/3459637.3481913(3906-3915)Online publication date: 26-Oct-2021
  • (2021)Don't be a blockheadProceedings of the Workshop on Hot Topics in Operating Systems10.1145/3458336.3465300(144-151)Online publication date: 1-Jun-2021

View Options

View options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media