{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,9,11]],"date-time":"2025-09-11T17:56:05Z","timestamp":1757613365705,"version":"3.44.0"},"reference-count":54,"publisher":"Association for Computing Machinery (ACM)","issue":"9","content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["Proc. VLDB Endow."],"published-print":{"date-parts":[[2025,5]]},"abstract":"<jats:p>\n            We present Keigo, a concurrency- and workload-aware storage middleware that enhances the performance of log-structured merge key-value stores (LSM KVS) when they are deployed on a hierarchy of storage devices. The key observation behind Keigo is that there is no\n            <jats:italic toggle=\"yes\">one-size-fits-all<\/jats:italic>\n            placement of data across the storage hierarchy that optimizes for all workloads. Hence, to leverage the benefits of combining different storage devices, Keigo places files across different devices based on their parallelism, I\/O bandwidth, and capacity. We introduce three techniques -\n            <jats:italic toggle=\"yes\">concurrency-aware data placement, persistent read-only caching<\/jats:italic>\n            , and\n            <jats:italic toggle=\"yes\">context-based I\/O differentiation.<\/jats:italic>\n            Keigo is portable across different LSMs, is adaptable to dynamic workloads, and does not require extensive profiling. Our system enables established production KVS such as RocksDB, LevelDB, and Speedb to benefit from heterogeneous storage setups.\n          <\/jats:p>\n          <jats:p>We evaluate Keigo using synthetic and realistic workloads, showing that it improves the throughput of production-grade LSMs up to 4X for write- and 18X for read-heavy workloads when compared to general-purpose storage systems and specialized LSM KVS.<\/jats:p>","DOI":"10.14778\/3746405.3746414","type":"journal-article","created":{"date-parts":[[2025,9,3]],"date-time":"2025-09-03T17:06:20Z","timestamp":1756919180000},"page":"2872-2885","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":0,"title":["KEIGO: Co-Designing Log-Structured Merge Key-Value Stores with a Non-Volatile, Concurrency-Aware Storage Hierarchy"],"prefix":"10.14778","volume":"18","author":[{"given":"R\u00faben","family":"Ad\u00e3o","sequence":"first","affiliation":[{"name":"INESC TEC &amp; University of Minho"}]},{"given":"Zhongjie","family":"Wu","sequence":"additional","affiliation":[{"name":"Yale University"}]},{"given":"Changjun","family":"Zhou","sequence":"additional","affiliation":[{"name":"McGill University"}]},{"given":"Oana","family":"Balmau","sequence":"additional","affiliation":[{"name":"McGill University"}]},{"given":"Jo\u00e3o","family":"Paulo","sequence":"additional","affiliation":[{"name":"INESC TEC &amp; University of Minho"}]},{"given":"Ricardo","family":"Macedo","sequence":"additional","affiliation":[{"name":"INESC TEC &amp; University of Minho"}]}],"member":"320","published-online":{"date-parts":[[2025,9,3]]},"reference":[{"key":"e_1_2_1_1_1","doi-asserted-by":"publisher","DOI":"10.1145\/3341301.3359656"},{"volume-title":"Alluxio, data orchestration for analytics and machine learning in the cloud. https:\/\/github.com\/Alluxio\/alluxio. Last accessed","year":"2025","key":"e_1_2_1_2_1","unstructured":"Alluxio. 2014. Alluxio\/alluxio: Alluxio, data orchestration for analytics and machine learning in the cloud. https:\/\/github.com\/Alluxio\/alluxio. Last accessed Jun 12, 2025."},{"volume-title":"apple\/foundationdb: FoundationDB - the open source, distributed, transactional key-value store. https:\/\/github.com\/apple\/foundationdb. Last accessed","year":"2025","key":"e_1_2_1_3_1","unstructured":"Apple. 2018. apple\/foundationdb: FoundationDB - the open source, distributed, transactional key-value store. https:\/\/github.com\/apple\/foundationdb. Last accessed Jun 12, 2025."},{"key":"e_1_2_1_4_1","volume-title":"axboe\/fio: Flexible I\/O Tester. https:\/\/github.com\/axboe\/fio. Last accessed","author":"Axboe Jens","year":"2025","unstructured":"Jens Axboe. 2005. axboe\/fio: Flexible I\/O Tester. https:\/\/github.com\/axboe\/fio. Last accessed Jun 12, 2025."},{"key":"e_1_2_1_5_1","volume-title":"SILK: Preventing Latency Spikes in Log-Structured Merge Key-Value Stores. In 2019 USENIX Annual Technical Conference. USENIX Association, 753\u2013766","author":"Balmau Oana","year":"2019","unstructured":"Oana Balmau, Florin Dinu, Willy Zwaenepoel, Karan Gupta, Ravishankar Chandhiramoorthi, and Diego Didona. 2019. SILK: Preventing Latency Spikes in Log-Structured Merge Key-Value Stores. In 2019 USENIX Annual Technical Conference. USENIX Association, 753\u2013766."},{"key":"e_1_2_1_6_1","volume-title":"Ganger","author":"Berg Benjamin","year":"2020","unstructured":"Benjamin Berg, Daniel S. Berger, Sara McAllister, Isaac Grosof, Sathya Gunasekar, Jimmy Lu, Michael Uhlar, Jim Carrig, Nathan Beckmann, Mor Harchol-Balter, and Gregory R. Ganger. 2020. The CacheLib Caching Engine: Design and Experiences at Scale. In 14th USENIX Symposium on Operating Systems Design and Implementation. USENIX Association, 753\u2013768."},{"key":"e_1_2_1_7_1","doi-asserted-by":"publisher","DOI":"10.5555\/3386691.3386712"},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1145\/2882903.2904441"},{"key":"e_1_2_1_9_1","volume-title":"Cost-Effective LSM-tree Based KV Store on Hybrid Storage. In 19th USENIX Conference on File and Storage Technologies. USENIX Association, 17\u201332","author":"Chen Hao","year":"2021","unstructured":"Hao Chen, Chaoyi Ruan, Cheng Li, Xiaosong Ma, and Yinlong Xu. 2021. SpanDB: A Fast, Cost-Effective LSM-tree Based KV Store on Hybrid Storage. In 19th USENIX Conference on File and Storage Technologies. USENIX Association, 17\u201332."},{"key":"e_1_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICDE55515.2023.00171"},{"key":"e_1_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.1109\/ISSCC.2018.8310322"},{"key":"e_1_2_1_12_1","volume-title":"cockroachdb\/cockroach: CockroachDB - the cloud native distributed SQL database. https:\/\/github.com\/cockroachdb\/cockroach. Last accessed","author":"DB.","year":"2025","unstructured":"CockroachDB. 2015. cockroachdb\/cockroach: CockroachDB - the cloud native distributed SQL database. https:\/\/github.com\/cockroachdb\/cockroach. Last accessed Jun 12, 2025."},{"key":"e_1_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1145\/1807128.1807152"},{"key":"e_1_2_1_14_1","volume-title":"Optimizing Space Amplification in RocksDB. In 8th Biennial Conference on Innovative Data Systems Research.","author":"Dong Siying","year":"2017","unstructured":"Siying Dong, Mark Callaghan, Leonidas Galanis, Dhruba Borthakur, Tony Savor, and Michael Strum. 2017. Optimizing Space Amplification in RocksDB. In 8th Biennial Conference on Innovative Data Systems Research."},{"key":"e_1_2_1_15_1","volume-title":"What every programmer should know about memory. https:\/\/people.freebsd.org\/~lstewart\/articles\/cpumemory.pdf. Last accessed","author":"Drepper Ulrich","year":"2025","unstructured":"Ulrich Drepper. 2007. What every programmer should know about memory. https:\/\/people.freebsd.org\/~lstewart\/articles\/cpumemory.pdf. Last accessed Jun 12, 2025."},{"volume-title":"Dragon: A distributed graph query engine. https:\/\/engineering.fb.com\/2016\/03\/18\/data-infrastructure\/dragon-a-distributed-graph-query-engine\/. Last accessed","year":"2016","key":"e_1_2_1_16_1","unstructured":"Facebook. 2016. Dragon: A distributed graph query engine. https:\/\/engineering.fb.com\/2016\/03\/18\/data-infrastructure\/dragon-a-distributed-graph-query-engine\/. Last accessed Jun 12, 2025."},{"key":"e_1_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.1145\/3542929.3563461"},{"volume-title":"google\/leveldb: LevelDB v1.23. https:\/\/github.com\/google\/leveldb. Last accessed","year":"2025","key":"e_1_2_1_18_1","unstructured":"Google. 2024. google\/leveldb: LevelDB v1.23. https:\/\/github.com\/google\/leveldb. Last accessed Jun 12, 2025."},{"key":"e_1_2_1_19_1","doi-asserted-by":"publisher","DOI":"10.14778\/3436905.3436921"},{"key":"e_1_2_1_20_1","doi-asserted-by":"publisher","DOI":"10.1109\/JPROC.2017.2731776"},{"key":"e_1_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.1145\/3064176.3064187"},{"volume-title":"Persistent Memory Development Kit. https:\/\/pmem.io\/pmdk\/. Last accessed","year":"2025","key":"e_1_2_1_22_1","unstructured":"Intel. 2025. Persistent Memory Development Kit. https:\/\/pmem.io\/pmdk\/. Last accessed Jun 12, 2025."},{"key":"e_1_2_1_23_1","volume-title":"Redesigning LSMs for Nonvolatile Memory with NoveLSM. In 2018 USENIX Annual Technical Conference. USENIX Association, 993\u20131005","author":"Kannan Sudarsun","year":"2018","unstructured":"Sudarsun Kannan, Nitish Bhat, Ada Gavrilovska, Andrea Arpaci-Dusseau, and Remzi Arpaci-Dusseau. 2018. Redesigning LSMs for Nonvolatile Memory with NoveLSM. In 2018 USENIX Annual Technical Conference. USENIX Association, 993\u20131005."},{"key":"e_1_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.1109\/JSSC.2022.3140414"},{"key":"e_1_2_1_25_1","doi-asserted-by":"publisher","DOI":"10.14778\/3603581.3603586"},{"key":"e_1_2_1_26_1","doi-asserted-by":"publisher","DOI":"10.1145\/3132747.3132770"},{"key":"e_1_2_1_27_1","doi-asserted-by":"publisher","DOI":"10.1145\/1773912.1773922"},{"key":"e_1_2_1_28_1","doi-asserted-by":"publisher","DOI":"10.1145\/3341301.3359628"},{"key":"e_1_2_1_29_1","volume-title":"2023 USENIX Annual Technical Conference. USENIX Association, 801\u2013815","author":"Lin Zhen","year":"2023","unstructured":"Zhen Lin, Lingfeng Xiang, Jia Rao, and Hui Lu. 2023. P2CACHE: Exploring Tiered Memory for In-Kernel File Systems Caching. In 2023 USENIX Annual Technical Conference. USENIX Association, 801\u2013815."},{"key":"e_1_2_1_30_1","doi-asserted-by":"publisher","DOI":"10.1007\/S00778-019-00555-Y"},{"key":"e_1_2_1_31_1","doi-asserted-by":"publisher","DOI":"10.1145\/3190508.3190526"},{"key":"e_1_2_1_32_1","volume-title":"20th USENIX Conference on File and Storage Technologies. USENIX Association, 413\u2013428","author":"Macedo Ricardo","year":"2022","unstructured":"Ricardo Macedo, Yusuke Tanimura, Jason Haga, Vijay Chidambaram, Jos\u00e9 Pereira, and Jo\u00e3o Paulo. 2022. PAIO: General, Portable I\/O Optimizations With Minor Application Modifications. In 20th USENIX Conference on File and Storage Technologies. USENIX Association, 413\u2013428."},{"key":"e_1_2_1_33_1","doi-asserted-by":"publisher","DOI":"10.14778\/3415478.3415546"},{"key":"e_1_2_1_34_1","doi-asserted-by":"publisher","DOI":"10.1145\/3477132.3483568"},{"volume-title":"RocksDB Tuning Guide. https:\/\/github.com\/facebook\/rocksdb\/wiki\/RocksDB-Tuning-Guide Last accessed","year":"2025","key":"e_1_2_1_35_1","unstructured":"Meta. 2023. RocksDB Tuning Guide. https:\/\/github.com\/facebook\/rocksdb\/wiki\/RocksDB-Tuning-Guide Last accessed Jun 12, 2025."},{"volume-title":"facebook\/rocksdb: RocksDB v6.11. https:\/\/github.com\/facebook\/rocksdb\/tree\/v6.11.6 Last accessed","year":"2025","key":"e_1_2_1_36_1","unstructured":"Meta. 2025. facebook\/rocksdb: RocksDB v6.11. https:\/\/github.com\/facebook\/rocksdb\/tree\/v6.11.6 Last accessed Jun 12, 2025."},{"key":"e_1_2_1_37_1","volume-title":"mongodb\/mongo: The MongoDB database. https:\/\/github.com\/mongodb\/mongo. Last accessed","author":"DB.","year":"2025","unstructured":"MongoDB. 2013. mongodb\/mongo: The MongoDB database. https:\/\/github.com\/mongodb\/mongo. Last accessed Jun 12, 2025."},{"key":"e_1_2_1_38_1","doi-asserted-by":"publisher","DOI":"10.1007\/S002360050048"},{"key":"e_1_2_1_39_1","volume-title":"Open Cache Acceleration Software. Last accessed","author":"CAS.","year":"2025","unstructured":"OpenCAS. 2025. Open Cache Acceleration Software. Last accessed Jun 12, 2025."},{"key":"e_1_2_1_40_1","doi-asserted-by":"publisher","DOI":"10.1145\/3582016.3582052"},{"key":"e_1_2_1_41_1","volume-title":"Ethan JH Park, and Sam H. Noh","author":"Song Hyunsub","year":"2021","unstructured":"Hyunsub Song, Shean Kim, J. Hyun Kim, Ethan JH Park, and Sam H. Noh. 2021. First Responder: Persistent Memory Simultaneously as High Performance Buffer Cache and Storage. In 2021 USENIX Annual Technical Conference. USENIX Association, 839\u2013853."},{"key":"e_1_2_1_42_1","doi-asserted-by":"publisher","DOI":"10.1145\/3575693.3575722"},{"volume-title":"speedb-io\/speedb: Speedb v2.6.0. https:\/\/github.com\/speedb-io\/speedb\/tree\/speedb\/v2.6.0. Last accessed","year":"2025","key":"e_1_2_1_43_1","unstructured":"Speedb. 2025. speedb-io\/speedb: Speedb v2.6.0. https:\/\/github.com\/speedb-io\/speedb\/tree\/speedb\/v2.6.0. Last accessed Jun 12, 2025."},{"key":"e_1_2_1_44_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICDE60146.2024.00316"},{"key":"e_1_2_1_45_1","doi-asserted-by":"publisher","DOI":"10.5555\/3585938.3585956"},{"key":"e_1_2_1_46_1","doi-asserted-by":"publisher","DOI":"10.5555\/3357062.3357066"},{"key":"e_1_2_1_47_1","volume-title":"Arpaci-Dusseau","author":"Wu Kan","year":"2021","unstructured":"Kan Wu, Zhihan Guo, Guanzhou Hu, Kaiwei Tu, Ramnatthan Alagappan, Rathijit Sen, Kwanghyun Park, Andrea C. Arpaci-Dusseau, and Remzi H. Arpaci-Dusseau. 2021. The Storage Hierarchy is Not a Hierarchy: Optimizing Caching on Modern Storage Devices with Orthus. In 19th USENIX Conference on File and Storage Technologies. USENIX Association, 307\u2013323."},{"key":"e_1_2_1_48_1","doi-asserted-by":"publisher","DOI":"10.5555\/3386691.3386708"},{"key":"e_1_2_1_49_1","doi-asserted-by":"publisher","DOI":"10.1145\/2815400.2815421"},{"key":"e_1_2_1_50_1","volume-title":"MatrixKV: Reducing Write Stalls and Write Amplification in LSM-tree Based KV Stores with Matrix Container in NVM. In 2020 USENIX Annual Technical Conference. USENIX Association, 17\u201331","author":"Yao Ting","year":"2020","unstructured":"Ting Yao, Yiwen Zhang, Jiguang Wan, Qiu Cui, Liu Tang, Hong Jiang, Changsheng Xie, and Xubin He. 2020. MatrixKV: Reducing Write Stalls and Write Amplification in LSM-tree Based KV Stores with Matrix Container in NVM. In 2020 USENIX Annual Technical Conference. USENIX Association, 17\u201331."},{"key":"e_1_2_1_51_1","doi-asserted-by":"publisher","DOI":"10.1145\/3267809.3267846"},{"key":"e_1_2_1_52_1","volume-title":"Young ri Choi, and Chun Jason Xue","author":"Yu Jinghuan","year":"2023","unstructured":"Jinghuan Yu, Sam H. Noh, Young ri Choi, and Chun Jason Xue. 2023. ADOC: Automatically Harmonizing Dataflow Between Components in Log-Structured Key-Value Stores for Improved Performance. In 21st USENIX Conference on File and Storage Technologies. USENIX Association, 65\u201380."},{"key":"e_1_2_1_53_1","volume-title":"Ziggurat: A Tiered File System for Non-Volatile Main Memories and Disks. In 17th USENIX Conference on File and Storage Technologies. USENIX Association, 207\u2013219","author":"Zheng Shengan","year":"2019","unstructured":"Shengan Zheng, Morteza Hoseinzadeh, and Steven Swanson. 2019. Ziggurat: A Tiered File System for Non-Volatile Main Memories and Disks. In 17th USENIX Conference on File and Storage Technologies. USENIX Association, 207\u2013219."},{"key":"e_1_2_1_54_1","doi-asserted-by":"publisher","DOI":"10.1145\/3580280"}],"container-title":["Proceedings of the VLDB Endowment"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.14778\/3746405.3746414","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,9,4]],"date-time":"2025-09-04T19:52:11Z","timestamp":1757015531000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.14778\/3746405.3746414"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2025,5]]},"references-count":54,"journal-issue":{"issue":"9","published-print":{"date-parts":[[2025,5]]}},"alternative-id":["10.14778\/3746405.3746414"],"URL":"https:\/\/doi.org\/10.14778\/3746405.3746414","relation":{},"ISSN":["2150-8097"],"issn-type":[{"type":"print","value":"2150-8097"}],"subject":[],"published":{"date-parts":[[2025,5]]},"assertion":[{"value":"2025-09-03","order":3,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}