NVAlloc: rethinking heap metadata management in persistent memory allocators

NVAlloc: rethinking heap metadata management in persistent memory allocators
复制标题

DOI:
10.1145/3503222.3507743
复制
发表时间:
2022-02
期刊:
Proceedings of the 27th ACM International Conference on Architectural Support for Programming Languages and Operating Systems
影响因子:
--
通讯作者:
Zheng Dang;Shuibing He;Peiyi Hong;Zhenxin Li;Xuechen Zhang;Xian-He Sun;Gang Chen
Zheng Dang;Shuibing He;Peiyi Hong;Zhenxin Li;Xuechen Zhang;Xian-He Sun;Gang Chen
中科院分区:
其他
文献类型:
--
作者:
Zheng Dang;Shuibing He;Peiyi Hong;Zhenxin Li;Xuechen Zhang;Xian-He Sun;Gang Chen

文献摘要

被引文献

相似文献

持久内存分配是开发高性能内存应用程序的基本构建块。现有的持久内存分配器遭受次优堆组织,在持久内存中引入重复的高速缓存行刷新和小的随机访问。更糟糕的是,许多分配器使用静态slab隔离,当分配请求大小发生变化时,会导致内存消耗急剧增加。在本文中,我们设计了一个新的分配器,命名为NVAlloc,同时解决上述问题。首先,NVAlloc通过将片中的连续数据块映射到存储在不同高速缓存行中的交织元数据条目来消除高速缓存行缓存。其次,它以顺序模式将小的元数据单元写入持久性簿记日志,以消除持久性内存中的随机堆元数据访问。第三,代替使用静态板隔离,它支持板变形,这允许板在尺寸类别之间转换以显著提高板使用率。NVAlloc是对现有一致性模型的补充。6个基准测试的结果表明,NVAlloc将最先进的持久性内存分配器的性能分别提高了6.4倍和57倍。使用NVAlloc可减少高达57.8%的内存使用量。此外,我们将NVAlloc集成在一个持久的FPTree中。与最先进的分配器相比,NVAlloc将此应用程序的性能提高了3.1倍。
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.