TY - GEN
T1 - Synchronizing without locks is inherently expensive
AU - Attiya, Hagit
AU - Hendler, Danny
AU - Guerraoui, Rachid
AU - Kouznetsov, Petr
PY - 2006/1/1
Y1 - 2006/1/1
N2 - It has been considered bon ton to blame locks for their fragility, especially since researchers identified obstruction-freedom: a progress condition that precludes locking while being weak enough to raise the hope for good performance. This paper attenuates this hope by establishing lower bounds on the complexity of obstruction-free implementations in contention-free executions: those where obstruction-freedom was precisely claimed to be effective. Through our lower bounds, we argue for an inherent cost of concurrent computing without locks. We first prove that obstruction-free implementations of a large class of objects, using only overwriting or trivial primitives in contention-free executions, have Ω(n) space complexity and Ω(log2 n) (obstruction-free) step complexity. These bounds apply to implementations of many popular objects, including variants of fetch&add, counter, compare&swap, and LL/SC. When arbitrary primitives can be applied in contention-free executions, we show that, in any implementation of binary consensus, or any perturbable object, the number of distinct base objects accessed and memory stalls incurred by some process in a contention free execution is Ω(√n). All these results hold regardless of the behavior of processes after they become aware of contention. We also prove that, in any obstruction-free implementation of a perturbable object in which processes are not allowed to fail their operations, the number of memory stalls incurred by some process that is unaware of contention is Ω(n).
AB - It has been considered bon ton to blame locks for their fragility, especially since researchers identified obstruction-freedom: a progress condition that precludes locking while being weak enough to raise the hope for good performance. This paper attenuates this hope by establishing lower bounds on the complexity of obstruction-free implementations in contention-free executions: those where obstruction-freedom was precisely claimed to be effective. Through our lower bounds, we argue for an inherent cost of concurrent computing without locks. We first prove that obstruction-free implementations of a large class of objects, using only overwriting or trivial primitives in contention-free executions, have Ω(n) space complexity and Ω(log2 n) (obstruction-free) step complexity. These bounds apply to implementations of many popular objects, including variants of fetch&add, counter, compare&swap, and LL/SC. When arbitrary primitives can be applied in contention-free executions, we show that, in any implementation of binary consensus, or any perturbable object, the number of distinct base objects accessed and memory stalls incurred by some process in a contention free execution is Ω(√n). All these results hold regardless of the behavior of processes after they become aware of contention. We also prove that, in any obstruction-free implementation of a perturbable object in which processes are not allowed to fail their operations, the number of memory stalls incurred by some process that is unaware of contention is Ω(n).
KW - Lock-free implementations
KW - Lower bound
KW - Memory contention
KW - Obstruction-freedom
KW - Perturbable objects
KW - Step contention
UR - http://www.scopus.com/inward/record.url?scp=33748714018&partnerID=8YFLogxK
U2 - 10.1145/1146381.1146427
DO - 10.1145/1146381.1146427
M3 - Conference contribution
AN - SCOPUS:33748714018
SN - 1595933840
SN - 9781595933843
T3 - Proceedings of the Annual ACM Symposium on Principles of Distributed Computing
SP - 300
EP - 307
BT - Proceedings of the 25th Annual ACM Symposium on Principles of Distributed Computing 2006
PB - Association for Computing Machinery
T2 - 25th Annual ACM Symposium on Principles of Distributed Computing 2006
Y2 - 23 July 2006 through 26 July 2006
ER -