An Efficient Built-in Temporal Support in MVCC-based Graph Databases

by   Jiamin Hou, et al.

Real-world graphs are often dynamic and evolve over time. To trace the evolving properties of graphs, it is necessary to maintain every change of both vertices and edges in graph databases with the support of temporal features. Existing works either maintain all changes in a single graph or periodically materialize snapshots to maintain the historical states of each vertex and edge and process queries over proper snapshots. The former approach presents poor query performance due to the ever-growing graph size as time goes by, while the latter one suffers from prohibitively high storage overheads due to large redundant copies of graph data across different snapshots. In this paper, we propose a hybrid data storage engine, which is based on the MVCC mechanism, to separately manage current and historical data, which keeps the current graph as small as possible. In our design, changes in each vertex or edge are stored once. To further reduce the storage overhead, we simply store the changes as opposed to storing the complete snapshot. To boost the query performance, we place a few anchors as snapshots to avoid deep historical version traversals. Based on the storage engine, a temporal query engine is proposed to reconstruct subgraphs as needed on the fly. Therefore, our alternative approach can provide fast querying capabilities over subgraphs at a past time point or range with small storage overheads. To provide native support of temporal features, we integrate our approach into Memgraph, and call the extended database system TGDB(Temporal Graph Database). Extensive experiments are conducted on four real and synthetic datasets. The results show TGDB performs better in terms of both storage and performance against state-of-the-art methods and has almost no performance overheads by introducing the temporal features.


page 1

page 2

page 3

page 4


A1: A Distributed In-Memory Graph Database

A1 is an in-memory distributed database used by the Bing search engine t...

A Distributed Path Query Engine for Temporal Property Graphs

Property graphs are a common form of linked data, with path queries used...

COLE: A Column-based Learned Storage for Blockchain Systems

Blockchain systems suffer from high storage costs as every node needs to...

Time-aware Dynamic Graph Embedding for Asynchronous Structural Evolution

Dynamic graphs refer to graphs whose structure dynamically changes over ...

An Index for Single Source All Destinations Distance Queries in Temporal Graphs

A typical task in temporal graphs analysis is answering single-source-al...

Using Colors and Sketches to Count Subgraphs in a Streaming Graph

Suppose we wish to estimate #H, the number of copies of some small graph...

Neural Graph Reasoning: Complex Logical Query Answering Meets Graph Databases

Complex logical query answering (CLQA) is a recently emerged task of gra...

Please sign up or login with your details

Forgot password? Click here to reset