Like other fundamental abstractions for high-performance computing, search trees need to support both high concurrency and data locality. However, existing locality-aware search trees based on the van Emde Boas layout (vEB-based trees), poorly support concurrent (update) operations. We present DeltaTree, a practical locality-aware concurrent search tree that integrates both locality-optimization techniques from vEB-based trees, and concurrency optimization techniques from highly-concurrent search trees. As a result, DeltaTree minimizes data transfer from memory to CPU and supports high concurrency. Our experimental evaluation shows that DeltaTree is up to 50% faster than highly concurrent B-trees on a commodity Intel high performance computing (HPC) platform and up to 65% faster on a commodity ARM embedded platform.
[1]
Michael A. Bender,et al.
Cache-Oblivious B-Trees
,
2005,
SIAM J. Comput..
[2]
Michael A. Bender,et al.
Cache-oblivious streaming B-trees
,
2007,
SPAA '07.
[3]
Gerth Stølting Brodal,et al.
Cache oblivious search trees via binary trees of small height
,
2001,
SODA '02.
[4]
Michael A. Bender,et al.
Concurrent cache-oblivious b-trees
,
2005,
SPAA '05.
[5]
S. B. Yao,et al.
Efficient locking for concurrent operations on B-trees
,
1981,
TODS.
[6]
Charles E. Leiserson,et al.
Cache-Oblivious Algorithms
,
2003,
CIAC.