A Scalable Concurrent Algorithm for Dynamic Connectivity

05/17/2021
by   Alexander Fedorov, et al.
0

Dynamic Connectivity is a fundamental algorithmic graph problem, motivated by a wide range of applications to social and communication networks and used as a building block in various other algorithms, such as the bi-connectivity and the dynamic minimal spanning tree problems. In brief, we wish to maintain the connected components of the graph under dynamic edge insertions and deletions. In the sequential case, the problem has been well-studied from both theoretical and practical perspectives. However, much less is known about efficient concurrent solutions to this problem. This is the gap we address in this paper. We start from one of the classic data structures used to solve this problem, the Euler Tour Tree. Our first contribution is a non-blocking single-writer implementation of it. We leverage this data structure to obtain the first truly concurrent generalization of dynamic connectivity, which preserves the time complexity of its sequential counterpart, but is also scalable in practice. To achieve this, we rely on three main techniques. The first is to ensure that connectivity queries, which usually dominate real-world workloads, are non-blocking. The second non-trivial technique expands the above idea by making all queries that do not change the connectivity structure non-blocking. The third ingredient is applying fine-grained locking for updating the connected components, which allows operations on disjoint components to occur in parallel. We evaluate the resulting algorithm on various workloads, executing on both real and synthetic graphs. The results show the efficiency of each of the proposed optimizations; the most efficient variant improves the performance of a coarse-grained based implementation on realistic scenarios up to 6x on average and up to 30x when connectivity queries dominate.

READ FULL TEXT

page 15

page 16

page 18

page 23

page 24

research
09/04/2018

A Simple and Practical Concurrent Non-blocking Unbounded Graph with Reachability Queries

Graph algorithms applied in many applications, including social networks...
research
07/14/2022

Dynamic Spanning Trees for Connectivity Queries on Fully-dynamic Undirected Graphs (Extended version)

Answering connectivity queries is fundamental to fully dynamic graphs wh...
research
12/14/2017

Range Queries in Non-blocking k-ary Search Trees

We present a linearizable, non-blocking k-ary search tree (k-ST) that su...
research
11/14/2019

In Search of the Fastest Concurrent Union-Find Algorithm

Union-Find (or Disjoint-Set Union) is one of the fundamental problems in...
research
03/03/2020

Dynamic Graph Operations: A Consistent Non-blocking Approach

Graph algorithms enormously contribute to the domains such as blockchain...
research
08/10/2020

ConnectIt: A Framework for Static and Incremental Parallel Graph Connectivity Algorithms

Connected components is a fundamental kernel in graph applications due t...
research
08/22/2023

Learned Lock-free Search Data Structures

Non-blocking search data structures offer scalability with a progress gu...

Please sign up or login with your details

Forgot password? Click here to reset