We present a general technique for garbage collecting old versions for multi-version concurrency control that simultaneously achieves good time and space complexity. Our technique takes only $O(1)$ time on average for each new version and maintains only a constant factor more than then number of needed versions. Our technique is designed for multi-version schemes using version lists, which are the most common. Our approach uses two components that are of independent interest. First, we define a novel range-tracking data structure which stores a set of old versions and efficiently finds those that are no longer needed. We provide a wait-free implementation in which all operations take amortized constant time. Second, we represent version lists using a new lock-free doubly-linked list algorithm that supports efficient (amortized constant time) removals given a pointer to any node in the list. These two components naturally fit together to solve the multiversion garbage collection problem--the range-tracker identifies which versions to remove and the list algorithm splices them out. We apply our garbage collection technique to generate end-to-end time and space bounds for the multiversioning system of Wei et al. (PPoPP 2021).


翻译:我们提出了一个收集旧版本的垃圾的通用技术,用于收集多种版本的旧版本,以便同时实现良好的时间和空间复杂性。我们的技术对每个新版本平均只需要一美元(1)美元的时间,并且只维持一个比当时需要的版本数量更多的不变因素。我们的技术是为使用最常见的版本列表的多版本计划设计的。我们的方法使用两个独立感兴趣的组成部分。首先,我们定义了储存一套旧版本并有效找到不再需要的旧版本的新的范围跟踪数据结构。我们提供了一种无等待的落实方法,所有操作都使用重新摊销的固定时间。第二,我们代表版本列表使用一个新的无锁的双链接列表算法,该算法支持高效(摊销的固定时间)清除到列表中的任何节点。这两个组成部分自然适合解决多版本垃圾收集问题—— 范围跟踪器确定哪些版本可以删除,而列表算法则可以将之切除。我们应用了垃圾收集技术来生成 Wei 等人 的多变量的终端到终端时间和空间框(PP 2021)。

0
下载
关闭预览

相关内容

PPoPP:ACM SIGPLAN Symposium on Principles & Practice of Parallel Programming。 Explanation:ACM-SIGPLAN并行编程原理与实践研讨会。 Publisher:ACM。 SIT:http://dblp.uni-trier.de/db/conf/ppopp/
专知会员服务
14+阅读 · 2021年5月21日
Linux导论,Introduction to Linux,96页ppt
专知会员服务
76+阅读 · 2020年7月26日
Fariz Darari简明《博弈论Game Theory》介绍,35页ppt
专知会员服务
106+阅读 · 2020年5月15日
因果图,Causal Graphs,52页ppt
专知会员服务
238+阅读 · 2020年4月19日
Keras François Chollet 《Deep Learning with Python 》, 386页pdf
专知会员服务
144+阅读 · 2019年10月12日
强化学习最新教程,17页pdf
专知会员服务
168+阅读 · 2019年10月11日
Transferring Knowledge across Learning Processes
CreateAMind
25+阅读 · 2019年5月18日
已删除
创业邦杂志
5+阅读 · 2019年3月27日
Ray RLlib: Scalable 降龙十八掌
CreateAMind
8+阅读 · 2018年12月28日
VIP会员
相关VIP内容
相关资讯
Transferring Knowledge across Learning Processes
CreateAMind
25+阅读 · 2019年5月18日
已删除
创业邦杂志
5+阅读 · 2019年3月27日
Ray RLlib: Scalable 降龙十八掌
CreateAMind
8+阅读 · 2018年12月28日
Top
微信扫码咨询专知VIP会员