Hi, In OLAP (GraphComputer), we have the enums ResultGraph and Persist.
https://github.com/apache/incubator-tinkerpop/blob/master/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/GraphComputer.java#L33-L57 My original intention with ResultGraph was that if you did ResultGraph.ORIGINAL then the original graph would be updated with all the changes from the mutated GraphComputer graph. However, this isn't working out like I planned and in fact, I think we should get rid of the concept of ResultGraph. https://issues.apache.org/jira/browse/TINKERPOP-1074 For SparkGraphComputer and GiraphGraphComputer, ResultGraph.ORIGINAL is not supported. For TinkerGraphComputer, it is. TinkerGraphComputer creates a "view" over the original graph and if you ResultGraph.ORIGINAL, that view is merged with the original graph. If ResultGraph.ORIGINAL no longer exists, how is GraphComputer data suppose to get back to the original graph. The answer lies in Daniel Kuppitz' work on BulkLoaderVertexProgram. With GraphComputer, you can chain together computations where: [PageRankVertexProgram,BulkLoaderVertexProgram] ….would pull from a Graph, PageRank OLAP, and then write the results back to the original graph (or some other graph!) via BulkLoader OLAP. I think this is how it should be done. This will simplify testing, reduce complexity, and provide one model by which GraphComputer data is sent back to the original graph. *** This change would primarily effect graph system providers that support ResultGraph.ORIGINAL. I don't think there are many. I know that TinkerGraph and FulgoraGraph (Titan) support it, but no others… Users will simply have one less method in their VertexPrograms and off of GraphComputer (though @Deprecate will make it backwards compatible for them). Thoughts?, Marko. http://markorodriguez.com