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

09/04/2018
by   Bapi Chatterjee, et al.
0

Graph algorithms applied in many applications, including social networks, communication networks, VLSI design, graphics, and several others, require dynamic modifications -- addition and removal of vertices and/or edges -- in the graph. This paper presents a novel concurrent non-blocking algorithm to implement a dynamic unbounded directed graph in a shared-memory machine. The addition and removal operations of vertices and edges are lock-free. For a finite sized graph, the lookup operations are wait-free. Most significant component of the presented algorithm is the reachability query in a concurrent graph. The reachability queries in our algorithm are obstruction-free and thus impose minimal additional synchronization cost over other operations. We prove that each of the data structure operations are linearizable. We extensively evaluate a sample C/C++ implementation of the algorithm through a number of micro-benchmarks. The experimental results show that the proposed algorithm scales well with the number of threads and on an average provides 5 to 7x performance improvement over a concurrent graph implementation using coarse-grained locking.

READ FULL TEXT
10/31/2018

A Concurrent Unbounded Wait-Free Graph

In this paper, we propose a concurrent non-blocking unbounded directed g...
03/03/2020

Dynamic Graph Operations: A Consistent Non-blocking Approach

Graph algorithms enormously contribute to the domains such as blockchain...
05/17/2021

A Scalable Concurrent Algorithm for Dynamic Connectivity

Dynamic Connectivity is a fundamental algorithmic graph problem, motivat...
09/07/2017

Enhancing KiWi - Scalable Concurrent Key-Value Map

We take a relatively fresh wait-free, concurrent sorted map called KiWi,...
04/04/2018

Maintenance of Strongly Connected Component in Shared-memory Graph

In this paper, we propose a generic concurrent directed graph (for share...
10/20/2021

Scheduling of Graph Queries: Controlling Intra- and Inter-query Parallelism for a High System Throughput

The vast amounts of data used in social, business or traffic networks, b...
01/02/2020

Analysis and Evaluation of Non-Blocking Interpolation Search Trees

We start by summarizing the recently proposed implementation of the firs...