Data versioning

39 views
Skip to first unread message

Gavin Baumanis

unread,
Jul 23, 2016, 5:49:44 AM7/23/16
to Aurelius
Hi Everyone,
I am really quite new to graph databases and am wondering how I might go about the following, please.

How do I go about "versioning" my data?

Let's assume I am using a RDBMS, what I normally do to achieve this is to insert a new row of data for all updates with a timestamp.
Whenever I need to retrieve anything, all my queries have an additional where clause along the lines of;
"where timestamp is newest".

So I get to keep all of my historical data, for auditing or BI/data warehouse purposes - but my "application" only ever sees the "current state" data.

Is it as simple as adding a timestamp property to all my graph components?


Thanks for any thoughts you might have.
-Gavin 

Ted Wilmes

unread,
Jul 25, 2016, 12:42:01 AM7/25/16
to Aurelius
Hi Gavin,
Your approach of adding timestamp properties to your vertices and edges is on the right track.  You can then 
manually add the necessary filtering to your queries or develop a traversal strategy that does it for you [1].  It is 
also possible to add properties on properties, so this provides some interesting options for 
adding temporal information at the individual property level.

Here are two nice references discussing time-based data versioning in property graphs in more detail:


Note that the neither of these references discuss TinkerPop 3 so the basic ideas will hold but the 
implementation details will be different.

--Ted

Gavin Baumanis

unread,
Jul 25, 2016, 10:15:57 AM7/25/16
to Aurelius
Awesome - thanks very ted.
Good to see I am not totally off the reservation, too!

-Gavin.
Reply all
Reply to author
Forward
0 new messages