کد مقاله | کد نشریه | سال انتشار | مقاله انگلیسی | نسخه تمام متن |
---|---|---|---|---|
432459 | 688901 | 2012 | 9 صفحه PDF | دانلود رایگان |

The JavaTMTM 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.
► A highly scalable wait-free implementation of a concurrent size() operation.
► A new lock-free interrupting snapshots algorithm that improves on prior practical snapshot algorithms.
► A new method based on Scan methods that interrupt each other which contrasts sharply with past approaches.
► Empirically, the new algorithm scales well, significantly outperforming existing implementations.
Journal: Journal of Parallel and Distributed Computing - Volume 72, Issue 7, July 2012, Pages 880–888