Interrupting snapshots and the Java[superscript TM] size() method
Author(s)
Afek, Yehuda; Tzafrir, Moran; Shavit, Nir N.
DownloadShavit_Interrupting snapshots.pdf (377.9Kb)
PUBLISHER_CC
Publisher with Creative Commons License
Creative Commons Attribution
Alternative title
Interrupting snapshots and the Java[superscript TM] size method
Terms of use
Metadata
Show full item recordAbstract
The Java[superscript TM] 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.
Date issued
2012-04Department
Massachusetts Institute of Technology. Department of Electrical Engineering and Computer ScienceJournal
Journal of Parallel and Distributed Computing
Publisher
Elsevier
Citation
Afek, Yehuda, Nir Shavit, and Moran Tzafrir. “Interrupting Snapshots and the Java Size Method.” Journal of Parallel and Distributed Computing 72, no. 7 (July 2012): 880–888.
Version: Author's final manuscript
ISSN
07437315
1096-0848