Sharded Elimination and Combining for Highly-Efficient Concurrent Stacks
By: Ajay Singh, Nikos Metaxakis, Panagiota Fatourou
Potential Business Impact:
Makes computer programs share data much faster.
We present a new blocking linearizable stack implementation which utilizes sharding and fetch&increment to achieve significantly better performance than all existing concurrent stacks. The proposed implementation is based on a novel elimination mechanism and a new combining approach that are efficiently blended to gain high performance. Our implementation results in enhanced parallelism and low contention when accessing the shared stack. Experiments show that the proposed stack implementation outperforms all existing concurrent stacks by up to 2X in most workloads. It is particularly efficient in systems supporting a large number of threads and in high contention scenarios.
Similar Papers
Recoverable Lock-Free Locks
Distributed, Parallel, and Cluster Computing
Makes computer programs safer and able to fix themselves.
Minimize Your Critical Path with Combine-and-Exchange Locks
Distributed, Parallel, and Cluster Computing
Makes computer programs run much faster.
No Cords Attached: Coordination-Free Concurrent Lock-Free Queues
Distributed, Parallel, and Cluster Computing
Makes computer programs share data faster and simpler.