arXiv · 1611.03947
A Pragmatic Non-Blocking Concurrent Directed Acyclic Graph
Abstract
In this paper, we have developed two algorithms for maintaining acyclicity in a concurrent directed graph. The first algorithm is based on a wait-free reachability query and the second one is based on partial snapshot-based obstruction-free reachability query. Interestingly, we are able to achieve the acyclic property in the dynamic setting without the need of helping using descriptors by other threads or clean double collect mechanism. We present a proof to show that the graph remains acyclic at all times in the concurrent setting. We also prove that the acyclic graph data-structure operations are linearizable. We implement both the algorithms in C++ and test through a number of micro-benchmarks. Our experimental results show an average of 7x improvement over the sequential and global lock implementation.
Explore related subjects
Keep this discovery
Sathya Peri, Muktikanta Sa, Nandini Singhal. 2016-11-12. A Pragmatic Non-Blocking Concurrent Directed Acyclic Graph. https://arxiv.org/abs/1611.03947
Cite the original work for its findings. Save a collection to share your selection of sources.