LIPIcs.DISC.2024.7.pdf
- Filesize: 0.88 MB
- 22 pages
An adaptive RMWable snapshot object maintains an array A[0..m-1] of m readable shared memory objects that support an arbitrary set of read-modify-write (RMW) operations, in addition to Read(). Each array entry A[i] can be accessed by any process using an operation Invoke(i,op), which simply applies a supported RMW operation op to A[i] and returns the response of op. In addition, processes can record the state of the array by calling Click(). While Click() does not return anything, a process p can call Observe(i) to determine the value of A[i] at the point of p’s latest Click(). Recently, Jayanti, Jayanti, and Jayanti [Prasad Jayanti et al., 2024] presented an RMWable adaptive snapshot object, where all operations have constant step complexity. Their algorithm is single-scanner, meaning that Click() operations cannot be executed concurrently. We present the first fully concurrent RMWable adaptive snapshot object, where all operations can be executed concurrently, assuming the the system provides atomic Fetch-And-Increment and Compare-And-Swap operations. Click() and Invoke() operations have constant step complexity, and Observe() has step complexity O(log n). The total number of base objects needed is O(mnlog n).
Feedback for Dagstuhl Publishing