论文标题

CEDRUSDB:带有内存映射懒惰的持续键值商店

CedrusDB: Persistent Key-Value Store with Memory-Mapped Lazy-Trie

论文作者

Yin, Maofan, Zhang, Hongbo, van Renesse, Robbert, Sirer, Emin Gün

论文摘要

由于RAM变得越来越便宜,因此在将用户操作记录到磁盘的同时,键值商店设计的趋势是维持快速内存索引(例如哈希表)的趋势,允许在无故障条件下进行高性能,同时仍然能够从失败中恢复过来。但是,这种设计是以长时间恢复时间或昂贵的检查站操作为代价的。本文提出了一个新的内存索引,也友好。 “懒惰”是Hash-Trie数据结构的一种变体,该变体达到了近乎最佳的高度,在头顶上有实际的存储空间,并且可以通过标准的写入日志记录来维持在盘中。 我们基于懒惰的Trie实施了Cedrusdb,持续的密钥值商店。使用标准内存映射在存储器中可用时,懒惰的情况将其保存在磁盘上。虚拟内存中的懒惰组织允许CedrusDB比其他磁盘索引方案(LSMS,B+-Trees)更好地利用并发处理。 CEDRUSDB在混合工作负载中与最近基于日志的内存键值商店相当或卓越的性能,同时能够从失败中快速恢复。

As a result of RAM becoming cheaper, there has been a trend in key-value store design towards maintaining a fast in-memory index (such as a hash table) while logging user operations to disk, allowing high performance under failure-free conditions while still being able to recover from failures. This design, however, comes at the cost of long recovery times or expensive checkpoint operations. This paper presents a new in-memory index that is also storage-friendly. A "lazy-trie" is a variant of the hash-trie data structure that achieves near-optimal height, has practical storage overhead, and can be maintained on-disk with standard write-ahead logging. We implemented CedrusDB, persistent key-value store based on a lazy-trie. The lazy-trie is kept on disk while made available in memory using standard memory-mapping. The lazy-trie organization in virtual memory allows CedrusDB to better leverage concurrent processing than other on-disk index schemes (LSMs, B+-trees). CedrusDB achieves comparable or superior performance to recent log-based in-memory key-value stores in mixed workloads while being able to recover quickly from failures.

扫码加入交流群

加入微信交流群

微信交流群二维码

扫码加入学术交流群,获取更多资源