Interface GraphComputer
- 
 public interface GraphComputerTheGraphComputeris responsible for the execution of aVertexProgramand then a set ofMapReducejobs over the vertices in theGraph. It is up to theGraphComputerimplementation to determine the appropriate memory structures given the computing substrate.- Author:
- Marko A. Rodriguez (http://markorodriguez.com), Matthias Broecheler (me@matthiasb.com)
 
- 
- 
Nested Class SummaryNested Classes Modifier and Type Interface Description static classGraphComputer.Exceptionsstatic interfaceGraphComputer.Featuresstatic classGraphComputer.Persiststatic classGraphComputer.ResultGraph
 - 
Method SummaryAll Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description default GraphComputerconfigure(String key, Object value)Set an arbitrary configuration key/value for the underlyingConfigurationin theGraphComputer.GraphComputeredges(Traversal<Vertex,Edge> edgeFilter)Add a filter that will limit which edges of the vertices are loaded from the graph source.default GraphComputer.Featuresfeatures()GraphComputermapReduce(MapReduce mapReduce)Add aMapReducejob to the set of MapReduce jobs to be executed by theGraphComputer.GraphComputerpersist(GraphComputer.Persist persist)Set theGraphComputer.Persistlevel of the computation.GraphComputerprogram(VertexProgram vertexProgram)Set theVertexProgramto be executed by theGraphComputer.GraphComputerresult(GraphComputer.ResultGraph resultGraph)Set theGraphComputer.ResultGraphof the computation.Future<ComputerResult>submit()GraphComputervertexProperties(Traversal<Vertex,? extends Property<?>> vertexPropertyFilter)Add a filter that will limit which vertex properties are loaded from the graph source.GraphComputervertices(Traversal<Vertex,Vertex> vertexFilter)Add a filter that will limit which vertices are loaded from the graph source.GraphComputerworkers(int workers)Set the desired number of workers to execute theVertexProgramandMapReducejobs.
 
- 
- 
- 
Method Detail- 
resultGraphComputer result(GraphComputer.ResultGraph resultGraph) Set theGraphComputer.ResultGraphof the computation. If this is not set explicitly by the user, then theVertexProgramcan choose the most efficient result for its intended use. If there is no declared vertex program, then theGraphComputerdefaults toGraphComputer.ResultGraph.ORIGINAL.- Parameters:
- resultGraph- the type of graph to be returned by- ComputerResult.graph()
- Returns:
- the updated GraphComputer with newly set result graph
 
 - 
persistGraphComputer persist(GraphComputer.Persist persist) Set theGraphComputer.Persistlevel of the computation. If this is not set explicitly by the user, then the\VertexProgramcan choose the most efficient persist for the its intended use. If there is no declared vertex program, then theGraphComputerdefaults toGraphComputer.Persist.NOTHING.- Parameters:
- persist- the persistence level of the resultant computation
- Returns:
- the updated GraphComputer with newly set persist
 
 - 
programGraphComputer program(VertexProgram vertexProgram) Set theVertexProgramto be executed by theGraphComputer. There can only be one VertexProgram for the GraphComputer.- Parameters:
- vertexProgram- the VertexProgram to be executed
- Returns:
- the updated GraphComputer with newly set VertexProgram
 
 - 
mapReduceGraphComputer mapReduce(MapReduce mapReduce) Add aMapReducejob to the set of MapReduce jobs to be executed by theGraphComputer. There can be any number of MapReduce jobs.- Parameters:
- mapReduce- the MapReduce job to add to the computation
- Returns:
- the updated GraphComputer with newly added MapReduce job
 
 - 
workersGraphComputer workers(int workers) Set the desired number of workers to execute theVertexProgramandMapReducejobs. This is a recommendation to the underlyingGraphComputerimplementation and is allowed to deviate accordingly by the implementation.- Parameters:
- workers- the number of workers to execute the submission
- Returns:
- the updated GraphComputer with newly set worker count
 
 - 
verticesGraphComputer vertices(Traversal<Vertex,Vertex> vertexFilter) throws IllegalArgumentException Add a filter that will limit which vertices are loaded from the graph source. The providedTraversalcan only check the vertex, its vertex properties, and the vertex property properties. The loaded graph will only have those vertices that pass through the provided filter.- Parameters:
- vertexFilter- the traversal to verify whether or not to load the current vertex
- Returns:
- the updated GraphComputer with newly set vertex filter
- Throws:
- IllegalArgumentException- if the provided traversal attempts to access vertex edges
 
 - 
edgesGraphComputer edges(Traversal<Vertex,Edge> edgeFilter) throws IllegalArgumentException Add a filter that will limit which edges of the vertices are loaded from the graph source. The providedTraversalcan only check the local star graph of the vertex and thus, can not access properties/labels of the adjacent vertices. The vertices of the loaded graph will only have those edges that pass through the provided filter.- Parameters:
- edgeFilter- the traversal that determines which edges are loaded for each vertex
- Returns:
- the updated GraphComputer with newly set edge filter
- Throws:
- IllegalArgumentException- if the provided traversal attempts to access adjacent vertices
 
 - 
vertexPropertiesGraphComputer vertexProperties(Traversal<Vertex,? extends Property<?>> vertexPropertyFilter) Add a filter that will limit which vertex properties are loaded from the graph source. The loaded vertices will only have those properties that pass through the provided filter. To drop all vertex properties, provide a traversal like __.properties("dummy") where "dummy" is not a valid vertex property.- Parameters:
- vertexPropertyFilter- the traversal that determines which vertex properties are loaded for each vertex
- Returns:
- the updated GraphComputer with newly set vertex property filter
 
 - 
configuredefault GraphComputer configure(String key, Object value) Set an arbitrary configuration key/value for the underlyingConfigurationin theGraphComputer. Typically, the other fluent methods inGraphComputershould be used to configure the computation. However, for some custom configuration in the underlying engine, this method should be used. Different GraphComputer implementations will have different key/values and thus, parameters placed here are generally not universal to all GraphComputer implementations. The default implementation simply does nothing and returns theGraphComputerunchanged.- Parameters:
- key- the key of the configuration
- value- the value of the configuration
- Returns:
- the updated GraphComputer with newly set key/value configuration
 
 - 
submitFuture<ComputerResult> submit() - Returns:
- a Futuredenoting a reference to the asynchronous computation and where to get theDefaultComputerResultwhen its is complete.
 
 - 
featuresdefault GraphComputer.Features features() 
 
- 
 
-