Persistent Non-Blocking Binary Search Trees Supportingwait-Free Range Queries

SPAA(2019)

引用 12|浏览26
暂无评分
摘要
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 that the FIND arrives at. Similarly, a range query helps only those updates taking place on nodes in the part of the tree it traverses. 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 of Ellen et al. [19] by making the tree persistent. Experimental results show that the persistent tree compares well with other tree data structures that provide range queries. The experimental evaluation also shows that the persistent tree scales well and that the additional cost of persistence is modest, as is the additional cost for achieving wait-free range queries.
更多
查看译文
关键词
range query,binary search tree,asynchronous,shared-memory,wait-free,linearizable,persistence
AI 理解论文
溯源树
样例
生成溯源树,研究论文发展脉络
Chat Paper
正在生成论文摘要