Computer Engineering and Applications ›› 2021, Vol. 57 ›› Issue (19): 97-103.DOI: 10.3778/j.issn.1002-8331.2008-0467

Previous Articles     Next Articles

Design and Implementation of SCM and SSD Based Key-Value Store

ZHAN Ling, ZHANG Yiwen   

  1. 1.Department of Information Science and Technology, Wenhua University, Wuhan 430074, China
    2.Wuhan National Laboratory of Optoelectronics, Huazhong University of Science and Technology, Wuhan 430074, China
  • Online:2021-10-01 Published:2021-09-29

基于SCM与SSD的混合高效键值存储系统研究

詹玲,张艺文   

  1. 1.文华学院 信息学部 计算机系,武汉 430074
    2.华中科技大学 武汉光电国家研究中心,武汉 430074

Abstract:

Storage Class Memory(also called Non-Volatile Memory) has many advantages like high throughput and byte-addressability which is beneficial to designing of storage system. In order to combine the merits of SCM and SSD, a hybrid and efficient key value storage system based on SCM and SSD named SSHKV(SCM and SSD Hybrid Key-Value store) is designed. SSHKV stores key and metadata in SCM, and stores value in the SSD by log-structured format to achieve the balance between performance and capacity. Besides, SSHKV adopts strategy called logical space amplification to reduce the valid data migration while Garbage Collection(GC) by mapping the invalid pages which is reclaimed by TRIM instruction to new logical space. According to the evaluation, the random write throughput of SSHKV is 20 times better than LevelDB, a currently popular key-value store engine based on LSM-Tree.

Key words: key-value store, Storage Class Memory(SCM), solid state storage, Log-Structured Merge Tree(LSM-Tree)

摘要:

具有高性能以及非易失特性的SCM(Storage Class Memory,存储级内存)技术逐渐成熟并开始运用到存储系统设计中,而传统的SSD仍然在存储容量上具有优势,为键值存储系统提供大容量存储的支持。现有键值存储系统不能充分发挥SCM与SSD混合存储架构的优势,需要对数据布局以及系统结构进行重新设计。针对SCM和SSD的特点,设计了基于SCM与SSD的混合式高效键值存储系统(SCM and SSD Hybrid Key-Value store,SSHKV)。SSHKV通过将键值存储中元数据信息存储到SCM中,将数据部分以日志方式存储到SSD中,实现性能与容量的兼顾。在SSD空间管理上,SSHKV采用逻辑空间放大策略,通过重映射TRIM指令释放的无效空间,减小了垃圾回收带来的数据迁移开销。SSHKV基于半异步半同步式IO模型实现,经过对比测试,SSHKV的随机写入性能相较于传统基于LSM-Tree的LevelDB提升了约20倍。

关键词: 键值存储, 存储级内存, 固态存储, 日志结构合并树