Block-stm: Scaling blockchain execution by turning ordering curse to a performance blessing
Block-STM is a parallel execution engine for smart contracts, built around the principles of
Software Transactional Memory. Transactions are grouped in blocks, and every execution of …
Software Transactional Memory. Transactions are grouped in blocks, and every execution of …
Constant-time snapshots with applications to concurrent data structures
Given a concurrent data structure, we present an approach for efficiently taking snapshots of
its constituent CAS objects. More specifically, we support a constant-time operation that …
its constituent CAS objects. More specifically, we support a constant-time operation that …
Lock-free and scalable multi-version software transactional memory
Software Transactional Memory (STM) was initially proposed as a lock-free mechanism for
concurrency control. Early implementations had efficiency limitations, and soon obstruction …
concurrency control. Early implementations had efficiency limitations, and soon obstruction …
Practically and theoretically efficient garbage collection for multiversioning
Multiversioning is widely used in databases, transactional memory, and concurrent data
structures. It can be used to support read-only transactions that appear atomic in the …
structures. It can be used to support read-only transactions that appear atomic in the …
Space and time bounded multiversion garbage collection
We present a general technique for garbage collecting old versions for multiversion
concurrency control that simultaneously achieves good time and space complexity. Our …
concurrency control that simultaneously achieves good time and space complexity. Our …
A timestamp based multi-version STM algorithm
Abstract Software Transactional Memory Systems (STM) are a promising alternative for
concurrency control in shared memory systems. Multiversion STM systems maintain multiple …
concurrency control in shared memory systems. Multiversion STM systems maintain multiple …
Eemarq: Efficient lock-free range queries with memory reclamation
Multi-Version Concurrency Control (MVCC) is a common mechanism for achieving
linearizable range queries in database systems and concurrent data-structures. The core …
linearizable range queries in database systems and concurrent data-structures. The core …
VERLIB: Concurrent Versioned Pointers
Recent work has shown how to augment any CAS-based concurrent data structure to
support taking a snapshot of the current memory state. Taking the snapshot, as well as loads …
support taking a snapshot of the current memory state. Taking the snapshot, as well as loads …
Pessimistic software lock-elision
Read-write locks are one of the most prevalent lock forms in concurrent applications
because they allow read accesses to locked code to proceed in parallel. However, they do …
because they allow read accesses to locked code to proceed in parallel. However, they do …
Universal constructions that ensure disjoint-access parallelism and wait-freedom
Disjoint-access parallelism and wait-freedom are two desirable properties for
implementations of concurrent objects. Disjoint-access parallelism guarantees that …
implementations of concurrent objects. Disjoint-access parallelism guarantees that …