Title
An almost non-blocking stack
Abstract
Non-blocking data structure implementations can be useful for performance and fault-tolerance reasons. And they are far easier to use correctly in a signal- or interrupt-handler context.We describe a weaker class of "almost non-blocking" data structures, which block only if more than some number N of threads attempt to simultaneously access the same data structure. We argue that this gives much of the benefit of fully non-blocking data structures, particularly for signal or interrupt handlers.We present an almost non-blocking linked stack implementation which is efficiently implementable even on hardware providing a single word compare-and-swap operation, while potentially providing the same interface as a well-known fully non-blocking solution, which relies on a double-width compare-and-swap instruction. By making a platform-dependent choice between these, we can implement a signal-handler-safe stack or free-list abstraction that is both portable and exhibits uniformly high performance with any flavor of compare-and-swap instruction.
Year
DOI
Venue
2004
10.1145/1011767.1011774
PODC
Keywords
Field
DocType
non-blocking data structure,compare-and-swap instruction,non-blocking data structure implementation,single word compare-and-swap operation,non-blocking solution,free-list abstraction,high performance,double-width compare-and-swap instruction,data structure,fault-tolerance reason,fault tolerant,stack,memory allocation,compare and swap,linked list,interrupt handler,lock free
Interrupt,Data structure,Non-blocking algorithm,Computer science,Interrupt handler,Call stack,Parallel computing,Thread (computing),Stack trace,Compare-and-swap,Distributed computing
Conference
ISBN
Citations 
PageRank 
1-58113-802-4
5
0.82
References 
Authors
12
1
Name
Order
Citations
PageRank
Hans Boehm163238.83