Investigation of a Transactional Model for Incremental Parallel Computing in Dynamic Graphs
In many applications involving dynamic graph structures one may be interested in continuously observing certain properties of interest. We present here the result of our investigation of utilizing a transactional model of parallel programming for supporting continuous queries on dynamic and evolving graph structures. The goal of our work is to continuously monitor a graph data structure as it is updated to check for the properties of interest. One approach for continuous monitoring is to re-execute the graph analytics program on the entire graph structure after it is updated. However, this approach can lead to high computation cost and latency in case of large graphs. An alternate approach is to execute the analytics program only initially, and then perform incremental computations for supporting continuous queries as the graph data is modified. In our model, the graph updates are performed as transactions, which trigger execution of a set of transactional tasks to perform computations for a continuous query. In our testbed system, the graph data is stored in the RAM of cluster nodes, and continuous queries involve parallel execution of transactional tasks on cluster nodes. Using a set of graph problems we illustrate this approach and its performance benefits for supporting continuous queries in dynamic graph data structure.