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

by   Sathya Peri, et al.

In this paper, we propose a generic concurrent directed graph (for shared memory architecture) that is concurrently being updated by threads adding/deleting vertices and edges. The graph is constructed by the composition of the well known concurrent list-based set data-structure from the literature. Our construction is generic, in the sense that it can be used to obtain various progress guarantees, depending on the granularity of the underlying concurrent set implementation - either blocking or non-blocking. We prove that the proposed construction is linearizable by identifying its linearization points. Finally, we compare the performance of all the variants of the concurrent graph data-structure along with its sequential implementation. We observe that our concurrent graph data-structure mimics the performance of the concurrent list based set.


page 1

page 2

page 3

page 4


Maintenance of Strongly Connected Component in Shared-memory Graph

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

Light-weight Locks

In this paper, we propose a new approach to building synchronization pri...

Concurrent Size

The size of a data structure (i.e., the number of elements in it) is a w...

Dynamic Graph Operations: A Consistent Non-blocking Approach

Graph algorithms enormously contribute to the domains such as blockchain...

Chunk List: Concurrent Data Structures

Chunking data is obviously no new concept; however, I had never found an...

A Concurrent Unbounded Wait-Free Graph

In this paper, we propose a concurrent non-blocking unbounded directed g...

Garbage Collection in Concurrent Sets

Garbage Collection in concurrent data structures, especially lock-free o...