Durable Algorithms for Writable LL/SC and CAS with Dynamic Joining

01/31/2023
by   Prasad Jayanti, et al.
0

We present durable implementations for two well known universal primitives – CAS (compare-and-swap), and its ABA-free counter-part LLSC (load-linked, store-conditional). All our implementations are: writable, meaning they support a Write() operation; have constant time complexity per operation; allow for dynamic joining, meaning newly created processes (a.k.a. threads) of arbitrary names can join a protocol and access our implementations; and have adaptive space complexities, meaning the space use scales in the number of processes n that actually use the objects, as opposed to previous protocols which are designed for a maximum number of processes N. Our durable Writable-CAS implementation, DuraCAS, requires O(m + n) space to support m objects that get accessed by n processes, improving on the state-of-the-art O(m + N^2). By definition, LLSC objects must store "contexts" in addition to object values. Our Writable-LLSC implementation, DuraLL, requires O(m + n + C) space, where C is the number of "contexts" stored across all the objects. While LLSC has an advantage over CAS due to being ABA-free, the object definition seems to require additional space usage. To address this trade-off, we define an External Context (EC) variant of LLSC. Our EC Writable-LLSC implementation is ABA-free and has a space complexity of just O(m + n). To our knowledge, we are the first to present durable CAS algorithms that allow for dynamic joining, and our algorithms are the first to exhibit adaptive space complexities. To our knowledge, we are the first to implement any type of durable LLSC objects.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
02/26/2020

Upper and Lower Bounds on the Space Complexity of Detectable Object

The emergence of systems with non-volatile main memory (NVM) increases t...
research
11/21/2019

LL/SC and Atomic Copy: Constant Time, Space Efficient Implementations using only pointer-width CAS

The Load-Link/Store-Conditional (LL/SC) primitive is considered the most...
research
01/10/2020

An Efficient Universal Construction for Large Objects

This paper presents L-UC, a universal construction that efficiently impl...
research
06/10/2020

Efficient Partial Snapshot Implementations

In this work, we propose the λ-scanner snapshot, a variation of the snap...
research
08/10/2020

Concurrent Fixed-Size Allocation and Free in Constant Time

Our goal is to efficiently solve the dynamic memory allocation problem i...
research
08/07/2023

Recoverable and Detectable Self-Implementations of Swap

Recoverable algorithms tolerate failures and recoveries of processes by ...
research
08/06/2019

Wait-Free Universality of Consensus in the Infinite Arrival Model

In classical asynchronous distributed systems composed of a fixed number...

Please sign up or login with your details

Forgot password? Click here to reset