A coordination-free, convergent, and safe replicated tree

03/08/2021
by   Sreeja Nair, et al.
0

The tree is an essential data structure in many applications. In a distributed application, such as a distributed file system, the tree is replicated.To improve performance and availability, different clients should be able to update their replicas concurrently and without coordination. Such concurrent updates converge if the effects commute, but nonetheless, concurrent moves can lead to incorrect states and even data loss. Such a severe issue cannot be ignored; ultimately, only one of the conflicting moves may be allowed to take effect. However, as it is rare, a solution should be lightweight. Previous approaches would require preventative cross-replica coordination, or totally order move operations after-the-fact, requiring roll-back and compensation operations. In this paper, we present a novel replicated tree that supports coordination-free concurrent atomic moves, and provably maintains the tree invariant. Our analysis identifies cases where concurrent moves are inherently safe, and we devise a lightweight, coordination-free, rollback-free algorithm for the remaining cases, such that a maximal safe subset of moves takes effect. We present a detailed analysis of the concurrency issues with trees, justifying our replicated tree data structure. We provide mechanized proof that the data structure is convergent and maintains the tree invariant. Finally, we compare the response time and availability of our design against the literature.

READ FULL TEXT

page 1

page 21

page 22

page 34

page 35

page 36

research
07/27/2023

Wait-Free Updates and Range Search using Uruv

CRUD operations, along with range queries make a highly useful abstract ...
research
10/02/2020

Proving Highly-Concurrent Traversals Correct

Modern highly-concurrent search data structures, such as search trees, o...
research
01/17/2022

A Tree Clock Data Structure for Causal Orderings in Concurrent Executions

Dynamic techniques are a scalable and effective way to analyze concurren...
research
03/19/2022

An Efficient Approach to Move Elements in a Distributed Geo-Replicated Tree

Replicated tree data structures are extensively used in collaborative ap...
research
09/15/2022

Concurrent Size

The size of a data structure (i.e., the number of elements in it) is a w...
research
11/08/2020

Generating Concurrent Programs From Sequential Data Structure Knowledge

In this paper we tackle the problem of automatically designing concurren...
research
06/08/2016

Coordination Annotation Extension in the Penn Tree Bank

Coordination is an important and common syntactic construction which is ...

Please sign up or login with your details

Forgot password? Click here to reset