A Simple and Practical Concurrent Non-blocking Unbounded Graph with Reachability Queries
Bapi Chatterjee, Sathya Peri, Muktikanta Sa, Nandini Singhal

TL;DR
This paper introduces a new lock-free, non-blocking concurrent algorithm for dynamic directed graphs that efficiently supports reachability queries and scales well with multiple threads.
Contribution
It presents the first practical non-blocking algorithm for dynamic directed graphs with efficient reachability queries and proven linearizability.
Findings
Achieves 5 to 7x performance improvement over coarse-grained locking.
Supports lock-free vertex and edge modifications and wait-free lookups.
Ensures minimal synchronization cost for reachability queries.
Abstract
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…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsDistributed systems and fault tolerance · Parallel Computing and Optimization Techniques · Optimization and Search Problems
