TY - JOUR
T1 - Interrupting snapshots and the Java TM size method
AU - Afek, Yehuda
AU - Shavit, Nir
AU - Tzafrir, Moran
N1 - Funding Information:
We thank Dave Dice and Doug Lea for their help during the writing of this paper. Our work was supported by European Union grant FP7-ICT-2007-1 (project VELOX). Moran Tzafrir passed away unexpectedly in July 18th 2010. This paper is dedicated, as we are sure she would have wanted, to her loving family.
PY - 2012/7
Y1 - 2012/7
N2 - The JavaTM developers kit requires a size() operation for all objects, tracking the number of elements in the object. Unfortunately, the best known solution, available in the Java concurrency package, has a blocking concurrent implementation that does not scale. This paper presents a highly scalable wait-free implementation of a concurrent size() operation based on a new lock-free interrupting snapshots algorithm. The key idea behind the new algorithm is to allow snapshot scan methods to interrupt each other until they agree on a shared linearization point with respect to update methods. This contrasts sharply with past approaches to the classical atomic snapshot problem, that have had threads coordinate the collecting of a shared global view. As we show empirically, the new algorithm scales well, significantly outperforming existing implementations.
AB - The JavaTM developers kit requires a size() operation for all objects, tracking the number of elements in the object. Unfortunately, the best known solution, available in the Java concurrency package, has a blocking concurrent implementation that does not scale. This paper presents a highly scalable wait-free implementation of a concurrent size() operation based on a new lock-free interrupting snapshots algorithm. The key idea behind the new algorithm is to allow snapshot scan methods to interrupt each other until they agree on a shared linearization point with respect to update methods. This contrasts sharply with past approaches to the classical atomic snapshot problem, that have had threads coordinate the collecting of a shared global view. As we show empirically, the new algorithm scales well, significantly outperforming existing implementations.
KW - Concurrent data-structures
KW - Java concurrency
KW - Lock-free
KW - Multicore algorithms
KW - Wait-free
UR - https://www.scopus.com/pages/publications/84861196271
U2 - 10.1016/j.jpdc.2012.03.007
DO - 10.1016/j.jpdc.2012.03.007
M3 - ???researchoutput.researchoutputtypes.contributiontojournal.article???
AN - SCOPUS:84861196271
SN - 0743-7315
VL - 72
SP - 880
EP - 888
JO - Journal of Parallel and Distributed Computing
JF - Journal of Parallel and Distributed Computing
IS - 7
ER -