Concurrency control in database structures with relaxed balance
PODS '87 Proceedings of the sixth ACM SIGACT-SIGMOD-SIGART symposium on Principles of database systems
Linearizability: a correctness condition for concurrent objects
ACM Transactions on Programming Languages and Systems (TOPLAS)
Skip lists: a probabilistic alternative to balanced trees
Communications of the ACM
Scalable reader-writer synchronization for shared-memory multiprocessors
PPOPP '91 Proceedings of the third ACM SIGPLAN symposium on Principles and practice of parallel programming
Concurrency of operations on B—trees
Readings in database systems (2nd ed.)
AVL Trees with Relaxed Balance
Proceedings of the 8th International Symposium on Parallel Processing
Software transactional memory for dynamic-sized data structures
Proceedings of the twenty-second annual symposium on Principles of distributed computing
Performance analysis of BSTs in system software
Proceedings of the joint international conference on Measurement and modeling of computer systems
Fast and lock-free concurrent priority queues for multi-thread systems
Journal of Parallel and Distributed Computing
McRT-STM: a high performance software transactional memory system for a multi-core runtime
Proceedings of the eleventh ACM SIGPLAN symposium on Principles and practice of parallel programming
A dichromatic framework for balanced trees
SFCS '78 Proceedings of the 19th Annual Symposium on Foundations of Computer Science
On the Performance of Contention Managers for Complex Transactional Memory Benchmarks
ISPDC '09 Proceedings of the 2009 Eighth International Symposium on Parallel and Distributed Computing
DISC'09 Proceedings of the 23rd international conference on Distributed computing
Transactional predication: high-performance concurrent sets and maps for STM
Proceedings of the 29th ACM SIGACT-SIGOPS symposium on Principles of distributed computing
Automatic fine-grain locking using shape properties
Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications
Concurrent tries with efficient non-blocking snapshots
Proceedings of the 17th ACM SIGPLAN symposium on Principles and Practice of Parallel Programming
A speculation-friendly binary search tree
Proceedings of the 17th ACM SIGPLAN symposium on Principles and Practice of Parallel Programming
Cache craftiness for fast multicore key-value storage
Proceedings of the 7th ACM european conference on Computer Systems
Non-blocking k-ary search trees
OPODIS'11 Proceedings of the 15th international conference on Principles of Distributed Systems
A non-blocking internal binary search tree
Proceedings of the twenty-fourth annual ACM symposium on Parallelism in algorithms and architectures
CBTree: a practical concurrent self-adjusting search tree
DISC'12 Proceedings of the 26th international conference on Distributed Computing
Journal of Parallel and Distributed Computing
Compiler aided manual speculation for high performance concurrent data structures
Proceedings of the 18th ACM SIGPLAN symposium on Principles and practice of parallel programming
Stronger semantics for low-latency geo-replicated storage
nsdi'13 Proceedings of the 10th USENIX conference on Networked Systems Design and Implementation
The SkipTrie: low-depth concurrent search without rebalancing
Proceedings of the 2013 ACM symposium on Principles of distributed computing
On the scalability of the Erlang term storage
Proceedings of the twelfth ACM SIGPLAN workshop on Erlang
Proceedings of the Twenty-Fourth ACM Symposium on Operating Systems Principles
ACM SIGOPS 24th Symposium on Operating Systems Principles
Speedy transactions in multicore in-memory databases
Proceedings of the Twenty-Fourth ACM Symposium on Operating Systems Principles
A lightweight infrastructure for graph analytics
Proceedings of the Twenty-Fourth ACM Symposium on Operating Systems Principles
Concurrent operations of O2-tree on shared memory multicore architectures
ADC '13 Proceedings of the Twenty-Fourth Australasian Database Conference - Volume 137
A contention-friendly binary search tree
Euro-Par'13 Proceedings of the 19th international conference on Parallel Processing
Fast concurrent lock-free binary search trees
Proceedings of the 19th ACM SIGPLAN symposium on Principles and practice of parallel programming
A general technique for non-blocking trees
Proceedings of the 19th ACM SIGPLAN symposium on Principles and practice of parallel programming
Practical concurrent binary search trees via logical ordering
Proceedings of the 19th ACM SIGPLAN symposium on Principles and practice of parallel programming
Hi-index | 0.00 |
We propose a concurrent relaxed balance AVL tree algorithm that is fast, scales well, and tolerates contention. It is based on optimistic techniques adapted from software transactional memory, but takes advantage of specific knowledge of the the algorithm to reduce overheads and avoid unnecessary retries. We extend our algorithm with a fast linearizable clone operation, which can be used for consistent iteration of the tree. Experimental evidence shows that our algorithm outperforms a highly tuned concurrent skip list for many access patterns, with an average of 39% higher single-threaded throughput and 32% higher multi-threaded throughput over a range of contention levels and operation mixes.