  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.
