TY - CHAP
T1 - Towards Automatic Lock Removal for Scalable Synchronization
AU - Arbel, Maya
AU - Golan-Gueta, Guy
AU - Hillel, Eshcar
AU - Keidar, Idit
N1 - Publisher Copyright: © Springer-Verlag Berlin Heidelberg 2015.
PY - 2015
Y1 - 2015
N2 - We present a code transformation for concurrent data structures, which increases their scalability without sacrificing correctness. Our transformation takes lock-based code and replaces some of the locking steps therein with optimistic synchronization in order to reduce contention. The main idea is to have each operation perform an optimistic traversal of the data structure as long as no shared memory locations are updated, and then proceed with pessimistic code. The transformed code inherits essential properties of the original one, including linearizability, serializability, and deadlock freedom. Our work complements existing pessimistic transformations that make sequential code thread-safe by adding locks. In essence, we provide a way to optimize such transformations by reducing synchronization bottlenecks (for example, locking the root of a tree). The resulting code scales well and significantly outperforms pessimistic approaches. We further compare our synthesized code to state-of-the-art data structures implemented by experts. We find that its performance is comparable to that achieved by the custom-tailored implementations. Our work thus shows the promise that automated approaches bear for overcoming the difficulty involved in manually hand-crafting concurrent data structures.
AB - We present a code transformation for concurrent data structures, which increases their scalability without sacrificing correctness. Our transformation takes lock-based code and replaces some of the locking steps therein with optimistic synchronization in order to reduce contention. The main idea is to have each operation perform an optimistic traversal of the data structure as long as no shared memory locations are updated, and then proceed with pessimistic code. The transformed code inherits essential properties of the original one, including linearizability, serializability, and deadlock freedom. Our work complements existing pessimistic transformations that make sequential code thread-safe by adding locks. In essence, we provide a way to optimize such transformations by reducing synchronization bottlenecks (for example, locking the root of a tree). The resulting code scales well and significantly outperforms pessimistic approaches. We further compare our synthesized code to state-of-the-art data structures implemented by experts. We find that its performance is comparable to that achieved by the custom-tailored implementations. Our work thus shows the promise that automated approaches bear for overcoming the difficulty involved in manually hand-crafting concurrent data structures.
UR - http://www.scopus.com/inward/record.url?scp=84946026028&partnerID=8YFLogxK
U2 - 10.1007/978-3-662-48653-5_12
DO - 10.1007/978-3-662-48653-5_12
M3 - فصل
SN - 978-3-662-48652-8
SN - 9783662486528
VL - 9363
T3 - Lecture Notes in Computer Science
SP - 170
EP - 184
BT - DISTRIBUTED COMPUTING (DISC 2015)
A2 - Moses, Yoram
T2 - 29th International Symposium on Distributed Computing, DISC 2015
Y2 - 7 October 2015 through 9 October 2015
ER -