The input/output complexity of sorting and related problems
Communications of the ACM
Linearizability: a correctness condition for concurrent objects
ACM Transactions on Programming Languages and Systems (TOPLAS)
SODA '92 Proceedings of the third annual ACM-SIAM symposium on Discrete algorithms
Tight(er) worst-case bounds on dynamic searching and priority queues
STOC '00 Proceedings of the thirty-second annual ACM symposium on Theory of computing
ACM Computing Surveys (CSUR)
Distributed Algorithms
A locality-preserving cache-oblivious dynamic dictionary
SODA '02 Proceedings of the thirteenth annual ACM-SIAM symposium on Discrete algorithms
Cache oblivious search trees via binary trees of small height
SODA '02 Proceedings of the thirteenth annual ACM-SIAM symposium on Discrete algorithms
A Complete and Constant Time Wait-Free Implementation of CAS from LL/SC and Vice Versa
DISC '98 Proceedings of the 12th International Symposium on Distributed Computing
A Sparse Table Implementation of Priority Queues
Proceedings of the 8th Colloquium on Automata, Languages and Programming
Exponential Structures for Efficient Cache-Oblivious Algorithms
ICALP '02 Proceedings of the 29th International Colloquium on Automata, Languages and Programming
FOCS '99 Proceedings of the 40th Annual Symposium on Foundations of Computer Science
FOCS '00 Proceedings of the 41st Annual Symposium on Foundations of Computer Science
A comparison of cache aware and cache oblivious static search trees using program instrumentation
Experimental algorithmics
Optimal dynamic interval management in external memory
FOCS '96 Proceedings of the 37th Annual Symposium on Foundations of Computer Science
Faster deterministic sorting and searching in linear space
FOCS '96 Proceedings of the 37th Annual Symposium on Foundations of Computer Science
The Cost of Cache-Oblivious Searching
FOCS '03 Proceedings of the 44th Annual IEEE Symposium on Foundations of Computer Science
A locality-preserving cache-oblivious dynamic dictionary
Journal of Algorithms
SIAM Journal on Computing
An adaptive packed-memory array
Proceedings of the twenty-fifth ACM SIGMOD-SIGACT-SIGART symposium on Principles of database systems
The cache complexity of multithreaded cache oblivious algorithms
Proceedings of the eighteenth annual ACM symposium on Parallelism in algorithms and architectures
Engineering a cache-oblivious sorting algorithm
Journal of Experimental Algorithmics (JEA)
An adaptive packed-memory array
ACM Transactions on Database Systems (TODS)
Provably good multicore cache performance for divide-and-conquer algorithms
Proceedings of the nineteenth annual ACM-SIAM symposium on Discrete algorithms
Fundamental parallel algorithms for private-cache chip multiprocessors
Proceedings of the twentieth annual symposium on Parallelism in algorithms and architectures
Algorithms and data structures for external memory
Foundations and Trends® in Theoretical Computer Science
Towards optimizing energy costs of algorithms for shared memory architectures
Proceedings of the twenty-second annual ACM symposium on Parallelism in algorithms and architectures
Non-blocking binary search trees
Proceedings of the 29th ACM SIGACT-SIGOPS symposium on Principles of distributed computing
Geometric algorithms for private-cache chip multiprocessors
ESA'10 Proceedings of the 18th annual European conference on Algorithms: Part II
Scheduling irregular parallel computations on hierarchical caches
Proceedings of the twenty-third annual ACM symposium on Parallelism in algorithms and architectures
An update-aware storage system for low-locality update-intensive workloads
ASPLOS XVII Proceedings of the seventeenth international conference on Architectural Support for Programming Languages and Operating Systems
Non-blocking k-ary search trees
OPODIS'11 Proceedings of the 15th international conference on Principles of Distributed Systems
Dynamic Defragmentation of Reconfigurable Devices
ACM Transactions on Reconfigurable Technology and Systems (TRETS)
Proceedings of the twenty-fourth annual ACM symposium on Parallelism in algorithms and architectures
Proceedings of the twenty-fourth annual ACM symposium on Parallelism in algorithms and architectures
Energy cost evaluation of parallel algorithms for multiprocessor systems
Cluster Computing
Scalable and dynamically balanced shared-everything OLTP with physiological partitioning
The VLDB Journal — The International Journal on Very Large Data Bases
On the scalability of the Erlang term storage
Proceedings of the twelfth ACM SIGPLAN workshop on Erlang
Fast concurrent lock-free binary search 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
A memory access model for highly-threaded many-core architectures
Future Generation Computer Systems
Hi-index | 0.00 |
This paper presents concurrent cache-oblivious (CO) B-trees. We extend the cache-oblivious model to a parallel or distributed setting and present three concurrent CO B-trees. Our first data structure is a concurrent lock-based exponential CO B-tree. This data structure supports insertions and non-blocking searches/successor queries. The second and third data structures are lock-based and lock-free variations, respectively, on the packed-memory CO B-tree. These data structures support range queries and deletions in addition to the other operations. Each data structure achieves the same serial performance as the original data structure on which it is based. In a concurrent setting, we show that these data structures are linearizable, meaning that completed operations appear to an outside viewer as though they occurred in some serialized order. The lock-based data structures are also deadlock free, and the lock-free data structure guarantees forward progress by at least one process.