Monkey: Optimal Navigable Key-Value Store

被引:144
|
作者
Dayan, Niv [1 ]
Athanassoulis, Manos [1 ]
Idreos, Stratos [1 ]
机构
[1] Harvard Univ, Cambridge, MA 02138 USA
基金
美国国家科学基金会;
关键词
D O I
10.1145/3035918.3064054
中图分类号
TP [自动化技术、计算机技术];
学科分类号
0812 ;
摘要
In this paper, we show that key-value stores backed by an LSM-tree exhibit an intrinsic trade-off between lookup cost, update cost, and main memory footprint, yet all existing designs expose a suboptimal and difficult to tune trade-off among these metrics. We pinpoint the problem to the fact that all modern key-value stores sub-optimally co-tune the merge policy, the buffer size, and the Bloom filters' false positive rates in each level. We present Monkey, an LSM-based key-value store that strikes the optimal balance between the costs of updates and lookups with any given main memory budget. The insight is that worst-case lookup cost is proportional to the sum of the false positive rates of the Bloom filters across all levels of the LSM-tree. Contrary to state-of-the-art key-value stores that assign a fixed number of bits-per-element to all Bloom filters, Monkey allocates memory to filters across different levels so as to minimize this sum. We show analytically that Monkey reduces the asymptotic complexity of the worst-case lookup I/O cost, and we verify empirically using an implementation on top of LevelDB that Monkey reduces lookup latency by an increasing margin as the data volume grows (50% - 80% for the data sizes we experimented with). Furthermore, we map the LSM-tree design space onto a closed-form model that enables co-tuning the merge policy, the buffer size and the filters' false positive rates to trade among lookup cost, update cost and/or main memory, depending on the workload (proportion of lookups and updates), the dataset (number and size of entries), and the underlying hardware (main memory available, disk vs. flash). We show how to use this model to answer what-if design questions about how changes in environmental parameters impact performance and how to adapt the various LSM-tree design elements accordingly.
引用
收藏
页码:79 / 94
页数:16
相关论文
共 50 条
  • [21] SconeKV: A Scalable, Strongly Consistent Key-Value Store
    Goncalves, Joao
    Matos, Miguel
    Rodrigues, Rodrigo
    [J]. IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS, 2022, 33 (12) : 4164 - 4175
  • [22] EdgeKV: Distributed Key-Value Store for the Network Edge
    Sonbol, Karim
    Ozkasap, Oznur
    Al Oqily, Ibrahim
    Aloqaily, Moayad
    [J]. 2020 IEEE SYMPOSIUM ON COMPUTERS AND COMMUNICATIONS (ISCC), 2020, : 1172 - 1177
  • [23] ChameleonDB: a Key-value Store for Optane Persistent Memory
    Zhang, Wenhui
    Zhao, Xingsheng
    Jiang, Song
    Jiang, Hong
    [J]. PROCEEDINGS OF THE SIXTEENTH EUROPEAN CONFERENCE ON COMPUTER SYSTEMS (EUROSYS '21), 2021, : 194 - 209
  • [24] Key-value Store Chip Design for Low Power Consumption
    Tokusashi, Yuta
    Matsutani, Hiroki
    Amano, Hideharu
    [J]. 2019 IEEE SYMPOSIUM IN LOW-POWER AND HIGH-SPEED CHIPS (COOL CHIPS 22), 2019,
  • [25] CaseDB: Lightweight Key-Value Store for Edge Computing Environment
    Tulkinbekov, Khikmatullo
    Kim, Deok-Hwan
    [J]. IEEE ACCESS, 2020, 8 : 149775 - 149786
  • [26] EMT: Elegantly Measured Tanner for Key-Value Store on SSD
    Chang, Tai
    Hsieh, Jen-Wei
    Chang, Tai-Chieh
    Lai, Liang-Wei
    [J]. IEEE TRANSACTIONS ON COMPUTER-AIDED DESIGN OF INTEGRATED CIRCUITS AND SYSTEMS, 2022, 41 (01) : 91 - 103
  • [27] KVell: the Design and Implementation of a Fast Persistent Key-Value Store
    Lepers, Baptiste
    Balmau, Oana
    Gupta, Karan
    Zwaenepoel, Willy
    [J]. PROCEEDINGS OF THE TWENTY-SEVENTH ACM SYMPOSIUM ON OPERATING SYSTEMS PRINCIPLES (SOSP '19), 2019, : 447 - 461
  • [28] In-Memory Key-Value Store Live Migration with NetMigrate
    Zhu, Zeying
    Zhao, Yibo
    Liu, Zaoxing
    [J]. PROCEEDINGS OF THE 21ST USENIX SYMPOSIUM ON NETWORKED SYSTEMS DESIGN AND IMPLEMENTATION, NSDI 24, 2024, : 209 - 224
  • [29] In-Memory Key-Value Store Live Migration with NetMigrate
    Zhu, Zeying
    Zhao, Yibo
    Liu, Zaoxing
    [J]. PROCEEDINGS OF THE 22ND USENIX CONFERENCE ON FILE AND STORAGE TECHNOLOGIES, FAST 24, 2024, : 209 - 224
  • [30] Rethinking Key-Value Store for Parallel I/O Optimization
    Yin, Yanlong
    Kougkas, Antonios
    Feng, Kun
    Eslami, Hassan
    Lu, Yin
    Sun, Xian-He
    Thakur, Rajeev
    Gropp, William
    [J]. 2014 INTERNATIONAL WORKSHOP ON DATA-INTENSIVE SCALABLE COMPUTING SYSTEMS (DISCS), 2014, : 33 - 40