arXivDaily arXiv每日学术速递 周一至周五更新
arXiv 1805.04779cs.DC
收藏

支持无等待范围搜索的持久非阻塞二叉搜索树

Persistent Non-Blocking Binary Search Trees Supporting Wait-Free Range Queries

Panagiota Fatourou, Eric Ruppert

摘要:

本文介绍了第一个实现的搜索树数据结构在异步共享内存系统,提供了一个等待的算法执行范围查询的树,除了插入,删除和查找的非阻塞算法,使用单字比较和交换(CAS)。该实现是可线性化的,并容忍任何数量的崩溃失败。在树的不同部分上操作的插入和删除操作完全并行运行(彼此没有任何干扰)。我们采用了一个轻量级的帮助机制,其中每个插入,删除和查找操作只帮助更新操作,影响它到达的叶子的局部邻域。类似地,扫描仅帮助在其遍历的树的部分的节点上发生的那些更新,因此在树的不同部分上操作的扫描不会相互干扰。我们的实现工作在一个动态系统中,进程的数量可能会随着时间的推移而变化。该实现基于Ellen等人提出的非阻塞二叉搜索树实现(在PODC 2010中),通过应用一种简单的机制使树持久化。

英文摘要:

This paper presents the first implementation of a search tree data structure in an asynchronous shared-memory system that provides a wait-free algorithm for executing range queries on the tree, in addition to non-blocking algorithms for Insert, Delete and Find, using single-word Compare-and-Swap (CAS). The implementation is linearizable and tolerates any number of crash failures. Insert and Delete operations that operate on different parts of the tree run fully in parallel (without any interference with one another). We employ a lightweight helping mechanism, where each Insert, Delete and Find operation helps only update operations that affect the local neighbourhood of the leaf it arrives at. Similarly, a Scan helps only those updates taking place on nodes of the part of the tree it traverses, and therefore Scans operating on different parts of the tree do not interfere with one another. Our implementation works in a dynamic system where the number of processes may change over time. The implementation builds upon the non-blocking binary search tree implementation presented by Ellen et al. (in PODC 2010) by applying a simple mechanism to make the tree persistent.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑