计算机研究与发展2021,Vol.58Issue(2) :371-383.DOI:10.7544/issn1000-1239.2021.20200403

基于持久性内存的单向移动B+树

One-Direction Shift B+-Tree Based on Persistent Memory

闫玮 张兴军 纪泽宇 董小社 姬辰肇
计算机研究与发展2021,Vol.58Issue(2) :371-383.DOI:10.7544/issn1000-1239.2021.20200403

基于持久性内存的单向移动B+树

One-Direction Shift B+-Tree Based on Persistent Memory

闫玮 1张兴军 1纪泽宇 1董小社 1姬辰肇1
扫码查看

作者信息

  • 1. 西安交通大学计算机科学与技术学院 西安710049
  • 折叠

摘要

由新型非易失存储介质构成的持久性内存(persistent memory,PM)具有扩展性强、按字节访问与静态能耗低等特性,为未来主存与辅存融合提供了强大的契机.然而由于LLC(last level cache)具有易失性且与主存交互粒度通常为64B,而PM的原子持久化操作粒度为8B.因此,数据从LLC更新到PM的过程中,若发生故障,则可能破坏更新操作的失败原子性,进而影响原始数据的完整性.为了保证更新操作的失败原子性,目前研究主要采用显式调用持久化指令与内存屏障指令,将数据有序地持久化到PM上,但该操作会造成显著的开销,在索引更新中尤为明显在对索引进行更新时,往往会涉及到索引结构的变化,该变化需要大量的有序持久化开销研究旨在减少基于PM的B+树在更新过程中为保证失败原子性而引入的持久化开销通过分析B+树节点利用率、不同更新模式下持久化开销以及更新操作之间的关系,提出了一种基于节点内数据真实分布的数据单向移动算法通过原地删除的方式,减少删除带来的持久化开销利用删除操作在节点内留下的空位,减少后续插入操作造成的数据移动,进而减少数据持久化开销基于上述算法,对B+树的重均衡操作进行优化.最后通过实验证明,相较于最新基于PM的B+树,提出的单向移动B+树能够显著提高单一负载与混合负载性能.

关键词

持久性内存/索引结构/失败原子性/索引更新/LLC/持久化指令

引用本文复制引用

基金项目

国家重点研发计划项目(2016YFB1000303)

出版年

2021
计算机研究与发展
中国科学院计算技术研究所 中国计算机学会

计算机研究与发展

CSTPCDCSCD北大核心
影响因子:2.649
ISSN:1000-1239
被引量1
参考文献量26
段落导航相关论文