NBR:基于中和的回收算法
分布式、并行与集群计算
2021-02-16 v2 数据结构与算法
编程语言
摘要
安全内存回收(SMR)算法在限制未回收内存量与回收速度之间存在权衡。基于危险指针(HP)的算法始终限制未回收内存,但往往比其他方法慢。基于纪元回收(EBR)的算法更快,但不限制内存回收。其他算法采用混合方法,需要特殊的编译器或硬件支持、对记录布局的修改和/或大量的代码改动。并非所有 SMR 算法都可用于回收所有数据结构的内存。我们提出一种新的基于中和的回收(NBR)算法,其比已知最优的 EBR 算法更快,并实现有界的未回收内存。当与非阻塞操作系统(OS)内核配合使用时,它是非阻塞的,且仅需原子读、写与 CAS。NBR 易于用于许多不同数据结构,且在大多数情况下,所需的推理与编程工作量类似于两阶段锁定。NBR 利用 OS 信号与参与线程间的轻量级握手机制来确定何时可以安全回收记录。在基于锁的二叉搜索树与惰性链表上的实验表明,NBR 显著优于许多最先进的回收算法。在树中,NBR 比次优算法 DEBRA 快至多 38%,比 HP 快至多 17%。而在链表中,NBR 分别比 DEBRA 和 HP 快 15% 和 243%。
引用
@article{arxiv.2012.14542,
title = {NBR: Neutralization Based Reclamation},
author = {Ajay Singh and Trevor Brown and Ali Mashtizadeh},
journal= {arXiv preprint arXiv:2012.14542},
year = {2021}
}
备注
Accepted in PPoPP2021