Papers
Topics
Authors
Recent
Gemini 2.5 Flash
Gemini 2.5 Flash
133 tokens/sec
GPT-4o
7 tokens/sec
Gemini 2.5 Pro Pro
46 tokens/sec
o3 Pro
4 tokens/sec
GPT-4.1 Pro
38 tokens/sec
DeepSeek R1 via Azure Pro
28 tokens/sec
2000 character limit reached

Efficient Partial Snapshot Implementations (2006.06048v1)

Published 10 Jun 2020 in cs.DC and cs.DS

Abstract: In this work, we propose the $\lambda$-scanner snapshot, a variation of the snapshot object, which supports any fixed amount of $0 < \lambda \leq n$ different $SCAN$ operations being active at any given time. Whenever $\lambda$ is equal to the number of processes $n$ in the system, the $\lambda$-scanner object implements a multi-scanner object, while in case that $\lambda$ is equal to $1$, the $\lambda$-scanner object implements a single-scanner object. We present the $\lambda-Snap$ snapshot object, a wait-free $\lambda$-scanner snapshot implementation that has a step complexity of $O(\lambda)$ for $UPDATE$ operations and $O(\lambda m)$ for $SCAN$ operations. The space complexity of $\lambda-Snap$ is $O(\lambda m)$. $\lambda-Snap$ provides a trade-off between the step/space complexity and the maximum number of $SCAN$ operations that the system can afford to be active on any given point in time. The low space complexity that our implementations provide makes them more appealing in real system applications. Moreover, we provide a slightly modified version of the $\lambda-Snap$ implementation, which is called partial $\lambda-Snap$, that is able to support dynamic partial scan operations. In such an object, processes can execute modified $SCAN$ operations called $PARTIAL_SCAN$ that could obtain a part of the snapshot object avoiding to read the whole set of components. In this work, we first provide a simple single-scanner version of $\lambda-Snap$, which is called $1-Snap$. We provide $1-Snap$ just for presentation purposes, since it is simpler than $\lambda-Snap$. The $UPDATE$ in $1-Snap$ has a step complexity of $O(1)$, while the $SCAN$ has a step complexity of $O(m)$. This implementation uses $O(m)$ $CAS$ registers.

Summary

We haven't generated a summary for this paper yet.