Xianyu He, Runyu Zhang, Pengpeng Tian, Lening Zhou, Min Lian, Chaoshu Yang
{"title":"WOPE: A write-optimized and parallel-efficient B+-tree for persistent memory","authors":"Xianyu He, Runyu Zhang, Pengpeng Tian, Lening Zhou, Min Lian, Chaoshu Yang","doi":"10.1016/j.sysarc.2024.103187","DOIUrl":null,"url":null,"abstract":"<div><p>Emerging Persistent Memory (PM) usually has the serious drawback of expensive write activities. Thus, existing PM-oriented B<span><math><msup><mrow></mrow><mrow><mo>+</mo></mrow></msup></math></span>-trees mainly concentrate on alleviating the write overhead (i.e., reducing PM writes and flush instructions). Unfortunately, due to the improper data organization in the sorted leaf node, existing solutions cause massive data migration when data inserting or node splitting occurs. In this paper, we propose a write-optimized PM-oriented B<span><math><msup><mrow></mrow><mrow><mo>+</mo></mrow></msup></math></span>-tree with aligned flush and selective migration, called WPB<span><math><msup><mrow></mrow><mrow><mo>+</mo></mrow></msup></math></span>-tree, to solve the above problems. WPB<span><math><msup><mrow></mrow><mrow><mo>+</mo></mrow></msup></math></span>-tree first adopts a buffer-assisted mechanism that temporarily stores the newly inserted data to reduce the overhead of entry shifts. Second, WPB<span><math><msup><mrow></mrow><mrow><mo>+</mo></mrow></msup></math></span>-tree employs a selective migration of node entries scheme to achieve less than half of the data migration when a node is split. Moreover, existing PM-oriented B<span><math><msup><mrow></mrow><mrow><mo>+</mo></mrow></msup></math></span>-trees usually employ a coarse-grained lock to avoid thread conflicts, which can severely degrade the concurrency efficiency. Thus, we further propose a fine-grained lock technique for WPB<span><math><msup><mrow></mrow><mrow><mo>+</mo></mrow></msup></math></span>-tree, namely, parallel-efficient WPB<span><math><msup><mrow></mrow><mrow><mo>+</mo></mrow></msup></math></span>-tree (WOPE), to improve the concurrency efficiency. We implement the proposed WPB<span><math><msup><mrow></mrow><mrow><mo>+</mo></mrow></msup></math></span>-tree and WOPE on Linux and conduct extensive evaluations with actual persistent memory, where WOPE achieves 23.5%, 30.7%, and 15.3% of performance improvement (<em>insert</em>, <em>read</em>, and <em>scan</em>) over the straightforward solutions (i.e., SSB-Tree, Fast&Fair, and wB<span><math><msup><mrow></mrow><mrow><mo>+</mo></mrow></msup></math></span>tree), and 10.1% of performance improvement over WPB<span><math><msup><mrow></mrow><mrow><mo>+</mo></mrow></msup></math></span>-tree, on average.</p></div>","PeriodicalId":50027,"journal":{"name":"Journal of Systems Architecture","volume":"153 ","pages":"Article 103187"},"PeriodicalIF":3.7000,"publicationDate":"2024-05-28","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Journal of Systems Architecture","FirstCategoryId":"94","ListUrlMain":"https://www.sciencedirect.com/science/article/pii/S1383762124001243","RegionNum":2,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"Q1","JCRName":"COMPUTER SCIENCE, HARDWARE & ARCHITECTURE","Score":null,"Total":0}
引用次数: 0
Abstract
Emerging Persistent Memory (PM) usually has the serious drawback of expensive write activities. Thus, existing PM-oriented B-trees mainly concentrate on alleviating the write overhead (i.e., reducing PM writes and flush instructions). Unfortunately, due to the improper data organization in the sorted leaf node, existing solutions cause massive data migration when data inserting or node splitting occurs. In this paper, we propose a write-optimized PM-oriented B-tree with aligned flush and selective migration, called WPB-tree, to solve the above problems. WPB-tree first adopts a buffer-assisted mechanism that temporarily stores the newly inserted data to reduce the overhead of entry shifts. Second, WPB-tree employs a selective migration of node entries scheme to achieve less than half of the data migration when a node is split. Moreover, existing PM-oriented B-trees usually employ a coarse-grained lock to avoid thread conflicts, which can severely degrade the concurrency efficiency. Thus, we further propose a fine-grained lock technique for WPB-tree, namely, parallel-efficient WPB-tree (WOPE), to improve the concurrency efficiency. We implement the proposed WPB-tree and WOPE on Linux and conduct extensive evaluations with actual persistent memory, where WOPE achieves 23.5%, 30.7%, and 15.3% of performance improvement (insert, read, and scan) over the straightforward solutions (i.e., SSB-Tree, Fast&Fair, and wBtree), and 10.1% of performance improvement over WPB-tree, on average.
期刊介绍:
The Journal of Systems Architecture: Embedded Software Design (JSA) is a journal covering all design and architectural aspects related to embedded systems and software. It ranges from the microarchitecture level via the system software level up to the application-specific architecture level. Aspects such as real-time systems, operating systems, FPGA programming, programming languages, communications (limited to analysis and the software stack), mobile systems, parallel and distributed architectures as well as additional subjects in the computer and system architecture area will fall within the scope of this journal. Technology will not be a main focus, but its use and relevance to particular designs will be. Case studies are welcome but must contribute more than just a design for a particular piece of software.
Design automation of such systems including methodologies, techniques and tools for their design as well as novel designs of software components fall within the scope of this journal. Novel applications that use embedded systems are also central in this journal. While hardware is not a part of this journal hardware/software co-design methods that consider interplay between software and hardware components with and emphasis on software are also relevant here.