Log In Sign Up

Dynamic Graph Operations: A Consistent Non-blocking Approach

by   Bapi Chatterjee, et al.

Graph algorithms enormously contribute to the domains such as blockchains, social networks, biological networks, telecommunication networks, and several others. The ever-increasing demand of data-volume, as well as speed of such applications, have essentially transported these applications from their comfort zone: static setting, to a challenging territory of dynamic updates. At the same time, mainstreaming of multi-core processors have entailed that the dynamic applications should be able to exploit concurrency as soon as parallelization gets inhibited. Thus, the design and implementation of efficient concurrent dynamic graph algorithms have become significant. This paper reports a novel library of concurrent shared-memory algorithms for breadth-first search (BFS), single-source shortest-path (SSSP), and betweenness centrality (BC) in a dynamic graph. The presented algorithms are provably non-blocking and linearizable. We extensively evaluate C++ implementations of the algorithms through several micro-benchmarks. The experimental results demonstrate the scalability with the number of threads. Our experiments also highlight the limitations of static graph analytics methods in a dynamic setting.


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

Graph algorithms applied in many applications, including social networks...

Maintenance of Strongly Connected Component in Shared-memory Graph

In this paper, we propose a generic concurrent directed graph (for share...

Building Efficient Concurrent Graph Object through Composition of List-based Set

In this paper, we propose a generic concurrent directed graph (for share...

DynaHash: Efficient Data Rebalancing in Apache AsterixDB (Extended Version)

Parallel shared-nothing data management systems have been widely used to...

A Scalable Concurrent Algorithm for Dynamic Connectivity

Dynamic Connectivity is a fundamental algorithmic graph problem, motivat...

A General Technique for Non-blocking Trees

We describe a general technique for obtaining provably correct, non-bloc...

Graph500 from OCaml-Multicore Perspective

OCaml is an industrial-strength, multi-paradigm programming language, wi...