23rd International Conference on Distributed Computing Systems, 2003. Proceedings. (2003)
Providence, Rhode Island
May 19, 2003 to May 22, 2003
Maurice Herlihy , Brown University
Victor Luchangco , Sun Microsystems Laboratories
Mark Moir , Sun Microsystems Laboratories
We introduce obstruction-freedom, a new nonblocking property for shared data structure implementations. This property is strong enough to avoid the problems associated with locks, but it is weaker than previous nonblocking properties-specifically lock-freedom and wait-freedom- allowing greater flexibility in the design of efficient implementations. Obstruction-freedom admits substantially simpler implementations, and we believe that in practice it provides the benefits of wait-free and lock-free implementations.<div></div> To illustrate the benefits of obstruction-freedom, we present two obstruction-free CAS-based implementations of double-ended queues (deques); the first is implemented on a linear array, the second on a circular array. To our knowledge, all previous nonblocking deque implementations are based on unrealistic assumptions about hardware support for synchronization, have restricted functionality, or have operations that interfere with operations at the opposite end of the deque even when the deque has many elements in it. Our obstruction-free implementations have none of these drawbacks, and thus suggest that it is much easier to design obstruction-free implementations than lock-free and wait-free ones. We also briefly discuss other obstruction-free data structures and operations that we have implemented.
M. Moir, M. Herlihy and V. Luchangco, "Obstruction-Free Synchronization: Double-Ended Queues as an Example," 23rd International Conference on Distributed Computing Systems, 2003. Proceedings.(ICDCS), Providence, Rhode Island, 2003, pp. 522.