TY - GEN
T1 - Efficient lock free privatization
AU - Afek, Yehuda
AU - Avni, Hillel
AU - Dice, Dave
AU - Shavit, Nir
PY - 2010/12/1
Y1 - 2010/12/1
N2 - Working on shared mutable data requires synchronization through barriers, locks or transactional memory mechanisms. To avoid this overhead a thread may privatize part of the data and work on it locally. By privatizing a data item a thread is guaranteed that it is the only one accessing this data, i.e., that it accesses the data item in exclusion. The most robust and yet lock-free privatization algorithms, are lock-free reference counting (LFRC). These algorithms attach a counter to each node, which counts the number of references to the node. However, these counters are shared by all threads in the system and thus are contention prone, and must be updated with expensive atomic operations such as CAS. We present a new privatization algorithm, Public Guard (PG); an algorithm which eliminates most of the contention of LFRC algorithms, while maintaining their robustness and non blocking nature. Our evaluation shows that PG improves performance by up to 50% in many work loads. Another problematic issue with LFRC, that we address in this paper, is that a counter of a private node, may be accessed by a slow thread. This may prevent LFRC from freeing memory to the system. In another contribution of this paper we suggest a method with minimal overhead to allow LFRC to reclaim memory.
AB - Working on shared mutable data requires synchronization through barriers, locks or transactional memory mechanisms. To avoid this overhead a thread may privatize part of the data and work on it locally. By privatizing a data item a thread is guaranteed that it is the only one accessing this data, i.e., that it accesses the data item in exclusion. The most robust and yet lock-free privatization algorithms, are lock-free reference counting (LFRC). These algorithms attach a counter to each node, which counts the number of references to the node. However, these counters are shared by all threads in the system and thus are contention prone, and must be updated with expensive atomic operations such as CAS. We present a new privatization algorithm, Public Guard (PG); an algorithm which eliminates most of the contention of LFRC algorithms, while maintaining their robustness and non blocking nature. Our evaluation shows that PG improves performance by up to 50% in many work loads. Another problematic issue with LFRC, that we address in this paper, is that a counter of a private node, may be accessed by a slow thread. This may prevent LFRC from freeing memory to the system. In another contribution of this paper we suggest a method with minimal overhead to allow LFRC to reclaim memory.
UR - http://www.scopus.com/inward/record.url?scp=78650853336&partnerID=8YFLogxK
U2 - 10.1007/978-3-642-17653-1_25
DO - 10.1007/978-3-642-17653-1_25
M3 - Conference contribution
AN - SCOPUS:78650853336
SN - 3642176526
SN - 9783642176524
T3 - Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
SP - 333
EP - 347
BT - Principles of Distributed Systems - 14th International Conference, OPODIS 2010, Proceedings
T2 - 14th International Conference on Principles of Distributed Systems, OPODIS 2010
Y2 - 14 December 2010 through 17 December 2010
ER -