Theoretical Computer Science ( IF 0.9 ) Pub Date : 2021-07-08 , DOI: 10.1016/j.tcs.2021.06.041 Bapi Chatterjee 1 , Ivan Walulya 2 , Philippas Tsigas 2
The Nearest neighbour search (NNS) is a fundamental problem in many application domains dealing with multidimensional data. In a concurrent setting, where dynamic modifications are allowed, a linearizable implementation of the NNS is highly desirable.
This paper introduces the LockFree-kD-tree (LFkD-tree ): a lock-free concurrent kD-tree, which implements an abstract data type (ADT) that provides the operations Add, Remove, Contains, and NNS. Our implementation is linearizable. The operations in the LFkD-tree use single-word read and compare-and-swap ( ) atomic primitives, which are readily supported on available multi-core processors.
We experimentally evaluate the LFkD-tree using several benchmarks comprising real-world and synthetic datasets. The experiments show that the presented design is scalable and achieves significant speed-up compared to the implementations of an existing sequential kD-tree and a recently proposed multidimensional indexing structure, PH-tree.
中文翻译:
LockFree-kD-tree 中的并发线性化最近邻搜索
最近邻搜索 (NNS) 是许多处理多维数据的应用领域中的基本问题。在允许动态修改的并发设置中,非常需要 NNS 的线性化实现。
本文介绍了 LockFree-kD-tree (LFkD-tree):一种无锁并发 kD-tree,它实现了一个抽象数据类型 (ADT),提供了Add、Remove、Contains和NNS 操作。我们的实现是可线性化的。LFkD 树中的操作使用单字读取和比较和交换(
) 原子原语,在可用的多核处理器上很容易支持。我们使用包括真实世界和合成数据集的几个基准对 LFkD 树进行了实验评估。实验表明,与现有的顺序 kD 树和最近提出的多维索引结构 PH 树的实现相比,所提出的设计具有可扩展性并实现了显着的加速。