当前位置: X-MOL 学术Distrib. Comput. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Non-blocking Patricia tries with replace operations
Distributed Computing ( IF 1.3 ) Pub Date : 2019-02-04 , DOI: 10.1007/s00446-019-00347-1
Niloufar Shafiei

This paper presents a non-blocking Patricia trie implementation for an asynchronous shared-memory system using Compare&Swap. The trie is a linearizable implementation of a set and supports three update operations: insert adds an element to the trie, delete removes an element from the trie and replace replaces one element by another. The replace operation is interesting because it changes two different locations of a trie. We design a mechanism that allows the two changes of a replace operation to appear to be executed atomically. If all update operations modify different parts of the trie, they run completely concurrently. The implementation also supports a wait-free find operation, which only reads shared memory and never changes the data structure. Our implementation and its correctness proof are modular and can be adapted for other data structures. Empirically, we compare our algorithms to some existing tree-based set implementations and our results show that our trie performs consistently well in different scenarios.

中文翻译:

非阻塞 Patricia 尝试使用替换操作

本文介绍了使用 Compare&Swap 的异步共享内存系统的非阻塞 Patricia trie 实现。trie 是一个 set 的线性化实现,支持三种更新操作:insert 向 trie 添加一个元素,delete 从 trie 中删除一个元素,replace 用另一个元素替换一个元素。替换操作很有趣,因为它改变了特里树的两个不同位置。我们设计了一种机制,允许替换操作的两个更改看起来是原子执行的。如果所有更新操作都修改了特里树的不同部分,它们将完全并发运行。该实现还支持无等待查找操作,该操作仅读取共享内存,从不更改数据结构。我们的实现及其正确性证明是模块化的,可以适用于其他数据结构。根据经验,我们将我们的算法与一些现有的基于树的集合实现进行了比较,我们的结果表明我们的 trie 在不同的场景中始终表现良好。
更新日期:2019-02-04
down
wechat
bug