Construction of point-in-time graph for analytics queries
A method for constructing a point-in-time global consistent graph is described. The method includes accessing a stream of data from a transactional graph database, receiving, at a scalable persistent computational platform that is separate from the transactional graph database, a graph analytics query that indicates a time attribute value, in response to receiving the graph analytics query, constructing, at the scalable persistent computational platform, a point-in-time graph snapshot based on the stream of data and the time attribute value, and processing, at the scalable persistent computational platform, the graph analytics query with the point-in-time graph snapshot.
1 . A computer-implemented method comprising:
accessing a stream of data from a transactional graph database;
receiving, at a scalable persistent computational platform that is separate from the transactional graph database, a graph analytics query that indicates a time attribute value;
in response to receiving the graph analytics query, constructing, at the scalable persistent computational platform, a point-in-time graph snapshot based on the stream of data and the time attribute value by reconstructing the point-in-time graph snapshot exclusively from database snapshots and database mutation logs already stored at the scalable persistent computational platform, without making any further requests to the transactional graph database after receiving the graph analytics query; and
processing, at the scalable persistent computational platform, the graph analytics query with the reconstructed point-in-time graph snapshot.
2 . The computer-implemented method of claim 1 , wherein the stream of data comprises a plurality of database snapshots of the transactional graph database and a stream of database mutation logs of the transactional graph database.
3 . The computer-implemented method of claim 2 , further comprising:
storing the plurality of database snapshots and the stream of database mutation logs at the scalable persistent computational platform.
4 . The computer-implemented method of claim 2 , wherein constructing the point-in-time graph snapshot further comprises:
constructing the point-in-time graph snapshot corresponding to the time attribute value based on one or more database snapshots of the plurality of database snapshots, the one or more database snapshots corresponding to the time attribute value, and one or more database mutation logs from the stream of database mutation logs, the one or more database mutation logs corresponding to the time attribute value.
5 . The computer-implemented method of claim 4 , wherein the one or more database mutation logs comprise a combination of unmerged database mutation logs and merged database mutation logs corresponding to the time attribute value.
6 . The computer-implemented method of claim 2 , wherein constructing the point-in-time graph snapshot further comprises:
constructing, at the scalable persistent computational platform, the point-in-time graph snapshot corresponding to the time attribute value based on the constructed point-in-time database snapshot corresponding to the time attribute value.
7 . The computer-implemented method of claim 2 , wherein constructing the point-in-time graph snapshot further comprises:
identifying a time window comprising a last database snapshot prior to the time attribute value and one or more database mutation logs between the last database snapshot and an unmerged database mutation log prior to the time attribute value.
8 . The computer-implemented method of claim 7 , further comprising:
merging the one or more database mutation logs identified in the time window.
9 . The computer-implemented method of claim 1 , wherein the graph analytics query is processed at the scalable persistent computational platform, and a graph transactional query is processed at the transactional graph database.
10 . The computer-implemented method of claim 1 , wherein the graph analytics query and a graph transactional query are processed on separate systems.
11 . A computing apparatus comprising:
a processor; and
a memory storing instructions that, when executed by the processor, configure the apparatus to:
access a stream of data from a transactional graph database;
receive, at a scalable persistent computational platform that is separate from the transactional graph database, a graph analytics query that indicates a time attribute value;
in response to receiving the graph analytics query, constructing, at the scalable persistent computational platform, a point-in-time graph snapshot based on the stream of data and the time attribute value by reconstructing the point-in-time graph snapshot exclusively from database snapshots and database mutation logs already stored at the scalable persistent computational platform, without making any further requests to the transactional graph database after receiving the graph analytics query; and
process, at the scalable persistent computational platform, the graph analytics query with the reconstructed point-in-time graph snapshot.
12 . The computing apparatus of claim 11 , wherein the stream of data comprises a plurality of database snapshots of the transactional graph database and a stream of database mutation logs of the transactional graph database.
13 . The computing apparatus of claim 12 , wherein the instructions further configure the apparatus to:
store the plurality of database snapshots and the stream of database mutation logs at the scalable persistent computational platform.
14 . The computing apparatus of claim 12 , wherein constructing the point-in-time graph snapshot further comprises:
construct the point-in-time graph snapshot corresponding to the time attribute value based on one or more database snapshots of the plurality of database snapshots, the one or more database snapshots corresponding to the time attribute value, and one or more database mutation logs from the stream of database mutation logs, the one or more database mutation logs corresponding to the time attribute value.
15 . The computing apparatus of claim 14 , wherein the one or more database mutation logs comprise a combination of unmerged database mutation logs and merged database mutation logs corresponding to the time attribute value.
16 . The computing apparatus of claim 12 , wherein constructing the point-in-time graph snapshot further comprises:
construct, at the scalable persistent computational platform, the point-in-time graph snapshot corresponding to the time attribute value based on the constructed point-in-time database snapshot corresponding to the time attribute value.
17 . The computing apparatus of claim 12 , wherein constructing the point-in-time graph snapshot further comprises:
identify a time window comprising a last database snapshot prior to the time attribute value and one or more database mutation logs between the last database snapshot and an unmerged database mutation log prior to the time attribute value.
18 . The computing apparatus of claim 17 , wherein the instructions further configure the apparatus to:
merge the one or more database mutation logs identified in the time window.
19 . The computing apparatus of claim 11 , wherein the graph analytics query is processed at the scalable persistent computational platform, and a graph transactional query is processed at the transactional graph database.
20 . A non-transitory computer-readable storage medium, the computer-readable storage medium including instructions that when executed by a computer, cause the computer to:
access a stream of data from a transactional graph database;
receive, at a scalable persistent computational platform that is separate from the transactional graph database, a graph analytics query that indicates a time attribute value;
in response to receiving the graph analytics query, constructing, at the scalable persistent computational platform, a point-in-time graph snapshot based on the stream of data and the time attribute value by reconstructing the point-in-time graph snapshot exclusively from database snapshots and database mutation logs already stored at the scalable persistent computational platform, without making any further requests to the transactional graph database after receiving the graph analytics query; and
process, at the scalable persistent computational platform, the graph analytics query with the reconstructed point-in-time graph snapshot.