OCTO+: Optimized Checkpointing of B+ Trees for Non-Volatile Main Memory Wear-Leveling

Steady deployment of byte addressable non-volatile memories (NVMs) as main memory in server class computers yields challenges on software. In order to overcome shortcomings, as for instance low cell endurance and high access latencies, working data can be kept in DRAM and continuously be checkpointed to the NVM. Although this reduces the impact of the NVM on usual execution, it shifts the endurance and latency issue to the checkpointing. Alongside widely studied generic wear-leveling solutions, we propose an application cooperative wear-leveling scheme for $\mathrm{B}^{+}$ trees, that realizes an interplay of the application and the wear-leveling. We collect memory usage statistics during tree operations and dynamically choose a memory mapping between the DRAM footprint and the NVM checkpoint of the $\mathrm{B}^{+}$ tree. In an experimental evaluation, we achieve $3 \times$ improvement in terms of memory lifetime.

[1]  Jian-Jia Chen,et al.  Can Wear-Aware Memory Allocation be Intelligent? , 2020, 2020 ACM/IEEE 2nd Workshop on Machine Learning for CAD (MLCAD).

[2]  Wei Li,et al.  A Wear Leveling Aware Memory Allocator for Both Stack and Heap Management in PCM-based Main Memory Systems , 2019, 2019 Design, Automation & Test in Europe Conference & Exhibition (DATE).

[3]  Swaroop Ghosh,et al.  Sensing of Phase-Change Memory , 2018, Sensing of Non-Volatile Memory Demystified.

[4]  Jian-Jia Chen,et al.  Software-Based Memory Analysis Environments for In-Memory Wear-Leveling , 2020, 2020 25th Asia and South Pacific Design Automation Conference (ASP-DAC).

[5]  Sudipta Chattopadhyay,et al.  Isle-Tree: A B+-Tree with Intra-Cache Line Sorted Leaves for Non-volatile Memory , 2020, 2020 IEEE 38th International Conference on Computer Design (ICCD).

[6]  Jian-Jia Chen,et al.  Split'n Trace NVM: Leveraging Library OSes for Semantic Memory Tracing , 2020, 2020 9th Non-Volatile Memory Systems and Applications Symposium (NVMSA).

[7]  Qin Jin,et al.  Persistent B+-Trees in Non-Volatile Main Memory , 2015, Proc. VLDB Endow..

[8]  Jun Yang,et al.  A durable and energy efficient main memory using phase change memory technology , 2009, ISCA '09.

[9]  Per-Åke Larson,et al.  BzTree: A High-Performance Latch-free Range Index for Non-Volatile Memory , 2018, Proc. VLDB Endow..

[10]  Renhai Chen,et al.  Emerging NVM: A Survey on Architectural Integration and Research Challenges , 2017, TODE.

[11]  Tao Zhang,et al.  NVMain 2.0: A User-Friendly Memory Simulator to Model (Non-)Volatile Memory Systems , 2015, IEEE Computer Architecture Letters.

[12]  Jian-Jia Chen,et al.  SoftWear: Software-Only In-Memory Wear-Leveling for Non-Volatile Main Memory , 2020, ArXiv.

[13]  Adam Silberstein,et al.  Benchmarking cloud serving systems with YCSB , 2010, SoCC '10.

[14]  Tei-Wei Kuo,et al.  Improving PCM Endurance with a Constant-Cost Wear Leveling Design , 2016, ACM Trans. Design Autom. Electr. Syst..

[15]  Ismail Oukid,et al.  FPTree: A Hybrid SCM-DRAM Persistent and Concurrent B-Tree for Storage Class Memory , 2016, SIGMOD Conference.

[16]  Vijayalakshmi Srinivasan,et al.  Enhancing lifetime and security of PCM-based Main Memory with Start-Gap Wear Leveling , 2009, 2009 42nd Annual IEEE/ACM International Symposium on Microarchitecture (MICRO).

[17]  Satish Narayanasamy,et al.  Software Wear Management for Persistent Memories , 2019, FAST.

[18]  Fang Liu,et al.  Wear Leveling for Non-Volatile Memory: a Runtime System Approach , 2018, IEEE Access.

[19]  Xiaowei Li,et al.  Wear rate leveling: Lifetime enhancement of PRAM with endurance variation , 2011, 2011 48th ACM/EDAC/IEEE Design Automation Conference (DAC).

[20]  Yuan Xue,et al.  Prolonging PCM lifetime through energy-efficient, segment-aware, and wear-resistant page allocation , 2014, 2014 IEEE/ACM International Symposium on Low Power Electronics and Design (ISLPED).

[21]  Rami G. Melhem,et al.  Increasing PCM main memory lifetime , 2010, 2010 Design, Automation & Test in Europe Conference & Exhibition (DATE 2010).

[22]  Yuan Xie,et al.  Adapting $\text{B}^{+}$ -Tree for Emerging Nonvolatile Memory-Based Main Memory , 2016, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[23]  Kaixin Huang,et al.  Quail: Using NVM write monitor to enable transparent wear-leveling , 2020, J. Syst. Archit..

[24]  Bingsheng He,et al.  NV-Tree: A Consistent and Workload-Adaptive Tree Structure for Non-Volatile Memory , 2016, IEEE Transactions on Computers.

[25]  Fang Liu,et al.  WAlloc: An efficient wear-aware allocator for non-volatile main memory , 2015, 2015 IEEE 34th International Performance Computing and Communications Conference (IPCCC).

[26]  Luis A. Lastras,et al.  PreSET: Improving performance of phase change memories by exploiting asymmetry in write times , 2012, 2012 39th Annual International Symposium on Computer Architecture (ISCA).

[27]  Tei-Wei Kuo,et al.  Age-based PCM wear leveling with nearly zero search cost , 2012, DAC Design Automation Conference 2012.