Skip to content

Latest commit

 

History

History
44 lines (24 loc) · 2.8 KB

2022-1-7-基于NVM的数据库存储引擎优化.md

File metadata and controls

44 lines (24 loc) · 2.8 KB

2022.1.7 分享纪要

分享内容

问题描述

目前的数据库存储引擎都是基于DRAM-SSD/HDD架构,NVM的出现给数据库存储引擎的发展带来了新的发展方向

解决思路

方向一:NVM对B+树的优化

基本思路:不再需要写前日志,保证一致性的同时降低一致性开销

  1. NV-Tree: Reducing Consistency Cost for NVM-based Single Level Systems

    NV-tree将节点分为叶子节点和内部节点,通过只保证叶子节点的崩溃一致性以及叶子节点的数据不要求有序来降低一致性开销,通过将中间节点设计成缓存优化的结构来提高CPU的cache命中率

  2. DPTree: Differential Indexing for Persistent Memory

    DPtree借鉴LSM-tree的思想,对B+树的写进行了优化,在DPtree中所有的写都会先写到位于易失性内存的第一级Buffer tree中,同时实现了一个基于非易失性内存的优化写的日志,第二级Base tree的索引部分由位于易失性内存中的基树(Radix Tree)实现,叶子节点存放在非易失性内存中,叶子节点的一致性通过版本号的原子更新来保证。

方向二:NVM对LSM-tree的优化

基本思路:用来解决LSM-tree的谢停顿、读写放大等问题

  1. SLM-DB: Single-Level Key-Value Store with Persistent Memory

    SLM-DB通过取消LSM-tree中的层级关系来消除写停顿,将所有的sstable都存放在块设备的同一层中,为了减少磁盘的占用设计了同级间的合并策略,并且为了提高读性能,在非易失性内存中利用B+树建立相关索引。

  2. MatrixKV: Reducing Write Stalls and Write Amplification in LSM-tree Based KV Stores with Matrix Container in NVM

    MatrixKV在DRAM-NVM-SSD三级存储架构之上,消除写停顿和写放大的基础上提升了读性能,作者认为LSM-tree的读停顿很大程度上是由L0级造成,于是为L0级的数据设计了适应非易失性内存的数据结构,并且通过降低LSM-tree的层级来减少写放大。

FAQ

  1. 这种持久化内存硬件设备现在发展的怎么样了?

    答:intel的傲腾持久内存基于3D XPrint技术将容量做到了和块设备一个量级,并且已经量产,在京东上可以买到,他的成本应该比DRAM要便宜一些,但是市场上流通量比较小,市场的关系导致单位价格和DRAM差不多。