TL;DR
This paper introduces two novel concurrent algorithms for maintaining acyclicity in directed graphs, ensuring linearizability and demonstrating significant performance improvements over traditional lock-based methods.
Contribution
It presents two new algorithms for concurrent acyclic graph maintenance that do not require helping mechanisms or double collects, with proven correctness and linearizability.
Findings
Achieved 7x performance improvement over lock-based implementations.
Proved the graph remains acyclic and operations are linearizable in concurrent settings.
Developed wait-free and obstruction-free algorithms for dynamic acyclic graphs.
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.
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.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
