Header menu link for other important links
X
A pragmatic non-blocking concurrent directed acyclic graph
, M. Sa, N. Singhal
Published in Springer
2019
Volume: 11704 LNCS
   
Pages: 327 - 344
Abstract
In this paper, we have developed two non-blocking algorithms for maintaining acyclicity in a concurrent directed graph. The first algorithm is based on a wait-free reachability query and the second one on partial snapshot-based obstruction-free reachability query. Interestingly, we are able to achieve the acyclic property in a dynamic setting without (1) making use of helping descriptors by other threads, or (2) 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 several micro-benchmarks. Our experimental results illustrate an average of 7x improvement over the sequential and global-lock implementation. © Springer Nature Switzerland AG 2019.