Interrupting snapshots and the Java[superscript TM] size() method
Name
Shavit_Interrupting snapshots.pdf
Size
377.9 KB
Format
Adobe PDF
Checksum (MD5)
c6ddad4cfcada331ee6c20cf2ebb2315
Author(s) • •
Afek, Yehuda
Tzafrir, Moran
Shavit, Nir N.
Alternative Title
Interrupting snapshots and the Java[superscript TM] size method
Date Issued
April 2012
Journal
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
Abstract
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.
MIT Department
Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science
Terms of Use
Creative Commons Attribution-NonCommercial-NoDerivs License
Persistent DSpace Link
DOI of Published Version
https://doi.org/10.1016/j.jpdc.2012.03.007