NVAlloc: Rethinking Heap Metadata Management in Persistent Memory Allocators

被引:27
作者
Dang, Zheng [1 ]
He, Shuibing [1 ]
Hong, Peiyi [1 ]
Li, Zhenxin [1 ]
Zhang, Xuechen [2 ]
Sun, Xian-He [3 ]
Chen, Gang [1 ]
机构
[1] Zhejiang Univ, Hangzhou, Zhejiang, Peoples R China
[2] Washington State Univ, Vancouver, WA USA
[3] IIT, Chicago, IL 60616 USA
来源
ASPLOS '22: PROCEEDINGS OF THE 27TH ACM INTERNATIONAL CONFERENCE ON ARCHITECTURAL SUPPORT FOR PROGRAMMING LANGUAGES AND OPERATING SYSTEMS | 2022年
基金
美国国家科学基金会;
关键词
dynamic memory allocation; persistent memory; memory fragmentation;
D O I
10.1145/3503222.3507743
中图分类号
TP3 [计算技术、计算机技术];
学科分类号
0812 ;
摘要
Persistent memory allocation is a fundamental building block for developing high-performance and in-memory applications. Existing persistent memory allocators suffer from suboptimal heap organizations that introduce repeated cache line flushes and small random accesses in persistent memory. Worse, many allocators use static slab segregation resulting in a dramatic increase in memory consumption when allocation request size is changed. In this paper, we design a novel allocator, named NVAlloc, to solve the above issues simultaneously. First, NVAlloc eliminates cache line reflushes by mapping contiguous data blocks in slabs to interleaved metadata entries stored in different cache lines. Second, it writes small metadata units to a persistent bookkeeping log in a sequential pattern to remove random heap metadata accesses in persistent memory. Third, instead of using static slab segregation, it supports slab morphing, which allows slabs to be transformed between size classes to significantly improve slab usage. NVAlloc is complementary to the existing consistency models. Results on 6 benchmarks demonstrate that NVAlloc improves the performance of state-of-the-art persistent memory allocators by up to 6.4x and 57x for small and large allocations, respectively. Using NVAlloc reduces memory usage by up to 57.8%. Besides, we integrate NVAlloc in a persistent FPTree. Compared to the state-of-the-art allocators, NVAlloc improves the performance of this application by up to 3.1x.
引用
收藏
页码:115 / 127
页数:13
相关论文
共 40 条
[1]   Let's Talk About Storage & Recovery Methods for Non-Volatile Memory Database Systems [J].
Arulraj, Joy ;
Pavlo, Andrew ;
Dulloor, Subramanya R. .
SIGMOD'15: PROCEEDINGS OF THE 2015 ACM SIGMOD INTERNATIONAL CONFERENCE ON MANAGEMENT OF DATA, 2015, :707-722
[2]  
Berger ED, 2000, ACM SIGPLAN NOTICES, V35, P117, DOI 10.1145/384264.379232
[3]   Makalu: Fast Recoverable Allocation of Non-volatile Memory [J].
Bhandari, Kumud ;
Chakrabarti, Dhruva R. ;
Boehm, Hans-J. .
ACM SIGPLAN NOTICES, 2016, 51 (10) :677-694
[4]  
Cai WT, 2020, PROCEEDINGS OF THE 25TH ACM SIGPLAN SYMPOSIUM ON PRINCIPLES AND PRACTICE OF PARALLEL PROGRAMMING (PPOPP '20), P421, DOI [10.1145/3381898.3397212, 10.1145/3332466.3374502]
[5]  
Cao ZC, 2020, PROCEEDINGS OF THE 18TH USENIX CONFERENCE ON FILE AND STORAGE TECHNOLOGIES, P209
[6]   Efficient Support of Position Independence on Non-Volatile Memory [J].
Chen, Guoyang ;
Zhang, Lei ;
Budhiraja, Richa ;
Shen, Xipeng ;
Wu, Youfeng .
50TH ANNUAL IEEE/ACM INTERNATIONAL SYMPOSIUM ON MICROARCHITECTURE (MICRO), 2017, :191-203
[7]   FlatStore: An Efficient Log-Structured Key-Value Storage Engine for Persistent Memory [J].
Chen, Youmin ;
Lu, Youyou ;
Yang, Fan ;
Wang, Qing ;
Wang, Yang ;
Shu, Jiwu .
TWENTY-FIFTH INTERNATIONAL CONFERENCE ON ARCHITECTURAL SUPPORT FOR PROGRAMMING LANGUAGES AND OPERATING SYSTEMS (ASPLOS XXV), 2020, :1077-1091
[8]  
Chen ZY, 2020, PROCEEDINGS OF THE 2020 USENIX ANNUAL TECHNICAL CONFERENCE, P799
[9]  
Coburn J, 2011, ACM SIGPLAN NOTICES, V46, P105, DOI [10.1145/1961295.1950380, 10.1145/1961296.1950380]
[10]   Romulus: Efficient Algorithms for Persistent Transactional Memory [J].
Correia, Andreia ;
Felber, Pascal ;
Ramalhete, Pedro .
SPAA'18: PROCEEDINGS OF THE 30TH ACM SYMPOSIUM ON PARALLELISM IN ALGORITHMS AND ARCHITECTURES, 2018, :271-282