Graphs are arguably one of the most fundamental data-structure used in many domains such as block-chain, networks etc. Theoretically and practically, improving Graph performance is one of the most studied and omnipresent research problems. In this paper, we have implemented a dynamic unbounded concurrent graph which can perform the add, delete or lookup operations on vertices and edges concurrently. All these methods are lock-free and linearizable. On top of this, we have also implemented the wait-free graph snapshot algorithm. To the best of knowledge this is first wait-free implementation of snapshot on concurrent graphs. We have used the snapshot of the algorithm to calculate the diameter and between centrality. We have compared our implementation with its counterparts and outperformed them by a good margin. This illustrates the efficiency of our snapshot method which is a generic method and can be used to perform other useful graph analytics operations.
翻译:图可以说是区块链、网络等众多领域中最基础的数据结构之一。从理论和实践角度,提升图性能是最受关注且普遍存在的研究问题之一。本文实现了一种动态无界并发图,可同时对顶点和边执行添加、删除或查找操作。所有方法均为无锁且可线性化的。在此基础上,我们还实现了无等待图快照算法。据我们所知,这是首个在并发图上实现无等待快照的算法。我们利用该快照算法计算图的直径和介数中心性,并与同类实现进行对比,结果表明我们的方法在性能上显著优于现有方案。这体现了我们快照方法的高效性——该通用方法还可用于其他有用的图分析操作。