Linearizability: a correctness condition for concurrent objects
ACM Transactions on Programming Languages and Systems (TOPLAS)
Introduction to algorithms
ACM Transactions on Programming Languages and Systems (TOPLAS)
Scalable reader-writer synchronization for shared-memory multiprocessors
PPOPP '91 Proceedings of the third ACM SIGPLAN symposium on Principles and practice of parallel programming
Locking without blocking: making lock based concurrent data structure algorithms nonblocking
PODS '92 Proceedings of the eleventh ACM SIGACT-SIGMOD-SIGART symposium on Principles of database systems
A methodology for implementing highly concurrent data objects
ACM Transactions on Programming Languages and Systems (TOPLAS)
A method for implementing lock-free shared-data structures
SPAA '93 Proceedings of the fifth annual ACM symposium on Parallel algorithms and architectures
Disjoint-access-parallel implementations of strong shared memory primitives
PODC '94 Proceedings of the thirteenth annual ACM symposium on Principles of distributed computing
Lock-free linked lists using compare-and-swap
Proceedings of the fourteenth annual ACM symposium on Principles of distributed computing
Simple, fast, and practical non-blocking and blocking concurrent queue algorithms
PODC '96 Proceedings of the fifteenth annual ACM symposium on Principles of distributed computing
Practical implementations of non-blocking synchronization primitives
PODC '97 Proceedings of the sixteenth annual ACM symposium on Principles of distributed computing
The art of computer programming, volume 3: (2nd ed.) sorting and searching
The art of computer programming, volume 3: (2nd ed.) sorting and searching
Concurrent set manipulation without locking
Proceedings of the seventh ACM SIGACT-SIGMOD-SIGART symposium on Principles of database systems
Universal Constructions for Large Objects
IEEE Transactions on Parallel and Distributed Systems
Proceedings of the twentieth annual ACM symposium on Principles of distributed computing
Safe memory reclamation for dynamic lock-free objects using atomic reads and writes
Proceedings of the twenty-first annual symposium on Principles of distributed computing
A Nonblocking Algorithm for Shared Queues Using Compare-and-Swap
IEEE Transactions on Computers
A Pragmatic Implementation of Non-blocking Linked-Lists
DISC '01 Proceedings of the 15th International Conference on Distributed Computing
Dynamic decentralized cache schemes for mimd parallel processors
ISCA '84 Proceedings of the 11th annual international symposium on Computer architecture
Nonblocking synchronization and system design
Nonblocking synchronization and system design
Safe memory reclamation for dynamic lock-free objects using atomic reads and writes
Proceedings of the twenty-first annual symposium on Principles of distributed computing
Nonblocking k-compare-single-swap
Proceedings of the fifteenth annual ACM symposium on Parallel algorithms and architectures
Split-ordered lists: lock-free extensible hash tables
Proceedings of the twenty-second annual symposium on Principles of distributed computing
Scalable and lock-free concurrent dictionaries
Proceedings of the 2004 ACM symposium on Applied computing
Hazard Pointers: Safe Memory Reclamation for Lock-Free Objects
IEEE Transactions on Parallel and Distributed Systems
Scalable lock-free dynamic memory allocation
Proceedings of the ACM SIGPLAN 2004 conference on Programming language design and implementation
Lock-free linked lists and skip lists
Proceedings of the twenty-third annual ACM symposium on Principles of distributed computing
Brief announcement: implementing multi-word atomic snapshots on current hardware
Proceedings of the twenty-third annual ACM symposium on Principles of distributed computing
Nonblocking memory management support for dynamic-sized data structures
ACM Transactions on Computer Systems (TOCS)
Proving correctness of highly-concurrent linearisable objects
Proceedings of the eleventh ACM SIGPLAN symposium on Principles and practice of parallel programming
Landing openMP on cyclops-64: an efficient mapping of openMP to a many-core system-on-a-chip
Proceedings of the 3rd conference on Computing frontiers
Lock-free dynamic hash tables with open addressing
Distributed Computing - Special issue: PODC 02
Split-ordered lists: Lock-free extensible hash tables
Journal of the ACM (JACM)
Lock-free parallel and concurrent garbage collection by mark&sweep
Science of Computer Programming
A general lock-free algorithm using compare-and-swap
Information and Computation
Proceedings of the 34th annual international symposium on Computer architecture
Transactional boosting: a methodology for highly-concurrent transactional objects
Proceedings of the 13th ACM SIGPLAN Symposium on Principles and practice of parallel programming
Deriving linearizable fine-grained concurrent objects
Proceedings of the 2008 ACM SIGPLAN conference on Programming language design and implementation
Practical, Fast and Simple Concurrent FIFO Queues Using Single Word Synchronization Primitives
Ada-Europe '08 Proceedings of the 13th Ada-Europe international conference on Reliable Software Technologies
Associative Parallel Containers in STAPL
Languages and Compilers for Parallel Computing
Critical sections: re-emerging scalability concerns for database storage engines
Proceedings of the 4th international workshop on Data management on new hardware
Proving that non-blocking algorithms don't block
Proceedings of the 36th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
NOBLE: non-blocking programming support via lock-free shared abstract data types
ACM SIGARCH Computer Architecture News
Experience with Model Checking Linearizability
Proceedings of the 16th International SPIN Workshop on Model Checking Software
Abstract Transformers for Thread Correlation Analysis
APLAS '09 Proceedings of the 7th Asian Symposium on Programming Languages and Systems
Early experience with a commercial hardware transactional memory implementation
Early experience with a commercial hardware transactional memory implementation
Supporting lock-free composition of concurrent data objects
Proceedings of the 7th ACM international conference on Computing frontiers
DISC'09 Proceedings of the 23rd international conference on Distributed computing
Lock-free parallel dynamic programming
Journal of Parallel and Distributed Computing
STAPL: standard template adaptive parallel library
Proceedings of the 3rd Annual Haifa Experimental Systems Conference
Non-blocking binary search trees
Proceedings of the 29th ACM SIGACT-SIGOPS symposium on Principles of distributed computing
Temporal logic verification of lock-freedom
MPC'10 Proceedings of the 10th international conference on Mathematics of program construction
The STAPL parallel container framework
Proceedings of the 16th ACM symposium on Principles and practice of parallel programming
Locality-conscious lock-free linked lists
ICDCN'11 Proceedings of the 12th international conference on Distributed computing and networking
Parallel implementations of Brunotte's algorithm
Journal of Parallel and Distributed Computing
Brief announcement: transaction polymorphism
Proceedings of the twenty-third annual ACM symposium on Parallelism in algorithms and architectures
Cruiser: concurrent heap buffer overflow monitoring using lock-free data structures
Proceedings of the 32nd ACM SIGPLAN conference on Programming language design and implementation
Resizable, scalable, concurrent hash tables via relativistic programming
USENIXATC'11 Proceedings of the 2011 USENIX conference on USENIX annual technical conference
Scalable hashing for shared memory supercomputers
Proceedings of 2011 International Conference for High Performance Computing, Networking, Storage and Analysis
Lock-free dynamically resizable arrays
OPODIS'06 Proceedings of the 10th international conference on Principles of Distributed Systems
Preemption adaptivity in time-published queue-based spin locks
HiPC'05 Proceedings of the 12th international conference on High Performance Computing
Allocating memory in a lock-free manner
ESA'05 Proceedings of the 13th annual European conference on Algorithms
Highly scalable multiprocessing algorithms for preference-based database retrieval
DASFAA'10 Proceedings of the 15th international conference on Database Systems for Advanced Applications - Volume Part II
Built-in coloring for highly-concurrent doubly-linked lists
DISC'06 Proceedings of the 20th international conference on Distributed Computing
Model checking of linearizability of concurrent list implementations
CAV'10 Proceedings of the 22nd international conference on Computer Aided Verification
Concurrent tries with efficient non-blocking snapshots
Proceedings of the 17th ACM SIGPLAN symposium on Principles and Practice of Parallel Programming
LHlf: lock-free linear hashing (poster paper)
Proceedings of the 17th ACM SIGPLAN symposium on Principles and Practice of Parallel Programming
Proceedings of the 17th ACM SIGPLAN symposium on Principles and Practice of Parallel Programming
LCPC'09 Proceedings of the 22nd international conference on Languages and Compilers for Parallel Computing
Non-blocking hashtables with open addressing
DISC'05 Proceedings of the 19th international conference on Distributed Computing
A lazy concurrent list-based set algorithm
OPODIS'05 Proceedings of the 9th international conference on Principles of Distributed Systems
OPODIS'11 Proceedings of the 15th international conference on Principles of Distributed Systems
Democratizing transactional programming
Middleware'11 Proceedings of the 12th ACM/IFIP/USENIX international conference on Middleware
A non-blocking internal binary search tree
Proceedings of the twenty-fourth annual ACM symposium on Parallelism in algorithms and architectures
Parameterized model checking of fine grained concurrency
SPIN'12 Proceedings of the 19th international conference on Model Checking Software
Democratizing transactional programming
Proceedings of the 12th International Middleware Conference
Brief announcement: a contention-friendly, non-blocking skip list
DISC'12 Proceedings of the 26th international conference on Distributed Computing
Modular verification of linearizability with non-fixed linearization points
Proceedings of the 34th ACM SIGPLAN conference on Programming language design and implementation
Hekaton: SQL server's memory-optimized OLTP engine
Proceedings of the 2013 ACM SIGMOD International Conference on Management of Data
Latch-free data structures for DBMS: design, implementation, and evaluation
Proceedings of the 2013 ACM SIGMOD International Conference on Management of Data
On the scalability of the Erlang term storage
Proceedings of the twelfth ACM SIGPLAN workshop on Erlang
Effective use of non-blocking data structures in a deduplication application
Proceedings of the 2013 companion publication for conference on Systems, programming, & applications: software for humanity
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
MICA: a holistic approach to fast in-memory key-value storage
NSDI'14 Proceedings of the 11th USENIX Conference on Networked Systems Design and Implementation
Hi-index | 0.00 |
Lock-free (non-blocking) shared data structures promise more robust performance and reliability than conventional lock-based implementations. However, all prior lock-free algorithms for sets and hash tables suffer from serious drawbacks that prevent or limit their use in practice. These drawbacks include size inflexibility, dependence on atomic primitives not supported on any current processor architecture, and dependence on highly-inefficient or blocking memory management techniques.Building on the results of prior researchers, this paper presents the first CAS-based lock-free list-based set algorithm that is compatible with all lock-free memory management methods. We use it as a building block of an algorithm for lock-free hash tables. In addition to being lock-free, the new algorithm is dynamic, linearizable, and space-efficient.Our experimental results show that the new algorithm outperforms the best known lock-free as well as lock-based hash table implementations by significant margins, and indicate that it is the algorithm of choice for implementing shared hash tables.