go back
go back
Volume 18, No. 5
Efficient Concurrent Updates to Persistent Randomized Binary Search Trees
Abstract
In the era of big data, the demand for historical data analytics is growing across various applications. Simultaneously, range queries have been extensively explored within the domain of databases. Binary search trees are a classic type of in-memory index for facilitating range queries. Persistent binary search trees provide read-only snapshots of these trees, allowing range queries to be processed during updates while ensuring consistency. Additionally, multiple versions of snapshots support queries related to historical moments to meet the demands of numerous applications. However, existing implementations do not support both high-speed updates and efficient, accurate historical queries on multicore platforms. Motivated by this gap, we propose a novel concurrent update strategy to balance update and query performance. For a binary search tree containing 𝑛 elements, our approach completes 𝑚 updates in O (log 𝑛 + 𝑚) time using O (log 𝑛) threads. We further implement a hybrid concurrent strategy to improve the scalability and practical performance of our solution. The experimental results demonstrate that our proposal strikes a good balance between update and query performance. In particular, our proposal outperforms existing solutions under workloads with different data distributions and varying update-query ratios.
PVLDB is part of the VLDB Endowment Inc.
Privacy Policy