Read-Modify-Writable Snapshots from Read/Write operations
Armando Castañeda, Braulio Ramses Hernández Martínez
TL;DR
This work investigates whether Read-Modify-Writable snapshots can be implemented using only read/write operations in asynchronous, fault-prone shared-memory systems. It delivers two read/write RMWable snapshot algorithms: a solo-updater for scenarios without concurrent updates and a general concurrent-updater for the standard concurrent environment, plus an adaptation for unbounded concurrency; all rely on a Collect(MEM) primitive and decouple MEM from the Update/Scan logic. The proposed solutions are proven linearizable and wait-free, extending snapshot capabilities to collections of arbitrarily readable MEM[k] objects without requiring powerful primitives like compare&swap or LL/SC. The results have practical significance for checkpointing and snapshotting existing concurrent algorithms, and they inform the design space for coordination-efficient, read/write-only distributed snapshot techniques in both finite and unbounded process models.
Abstract
In the context of asynchronous concurrent shared-memory systems, a snapshot algorithm allows failure-prone processes to concurrently and atomically write on the entries of a shared array MEM , and also atomically read the whole array. Recently, Read-Modify-Writable (RMWable) snapshot was proposed, a variant of snapshot that allows processes to perform operations more complex than just read and write, specifically, each entry MEM[k] is an arbitrary readable object. The known RMWable snapshot algorithms heavily rely on powerful low-level operations such as compare&swap or load-link/store-conditional to correctly produce snapshots of MEM. Following the large body of research devoted to understand the limits of what can be solved using the simple read/write low-level operations, which are known to be strictly weaker than compare&swap and load-link/store-conditional, we explore if RMWable snapshots are possible using only read/write operations. We present two read/write RMWable snapshot algorithms, the first one in the standard concurrent shared-memory model where the number of processes n is finite and known in advance, and the second one in a variant of the standard model with unbounded concurrency, where there are infinitely many processes, but at any moment only finitely many processes participate in an execution.
