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.
翻译:在异步并发共享内存系统的背景下,快照算法允许易故障进程并发且原子性地写入共享数组 MEM 的条目,并原子性地读取整个数组。最近,可读-修改-写(RMWable)快照被提出,这是一种快照的变体,允许进程执行比单纯读写更复杂的操作,具体而言,每个条目 MEM[k] 是一个任意的可读对象。已知的 RMWable 快照算法严重依赖强大的底层操作,如比较并交换(compare&swap)或加载链接/条件存储(load-link/store-conditional),以正确生成 MEM 的快照。继大量致力于理解仅使用简单读/写底层操作(已知其严格弱于比较并交换和加载链接/条件存储)可解决问题范围的研究之后,我们探讨是否仅通过读/写操作即可实现 RMWable 快照。我们提出了两种仅使用读/写操作的 RMWable 快照算法:第一种适用于标准并发共享内存模型,其中进程数 n 有限且预先已知;第二种适用于标准模型的变体,该模型具有无界并发性,即存在无限多个进程,但在任意时刻仅有有限多个进程参与执行。