public interface GraphComputer
GraphComputer
is responsible for the execution of a VertexProgram
and then a set of
MapReduce
jobs over the vertices in the Graph
. It is up to the GraphComputer
implementation
to determine the appropriate memory structures given the computing substrate.Modifier and Type | Interface and Description |
---|---|
static class |
GraphComputer.Exceptions |
static interface |
GraphComputer.Features |
static class |
GraphComputer.Persist |
static class |
GraphComputer.ResultGraph |
Modifier and Type | Method and Description |
---|---|
default GraphComputer |
configure(String key,
Object value)
Set an arbitrary configuration key/value for the underlying
Configuration in the GraphComputer . |
GraphComputer |
edges(Traversal<Vertex,Edge> edgeFilter)
Add a filter that will limit which edges of the vertices are loaded from the graph source.
|
default GraphComputer.Features |
features() |
GraphComputer |
mapReduce(MapReduce mapReduce)
Add a
MapReduce job to the set of MapReduce jobs to be executed by the GraphComputer . |
GraphComputer |
persist(GraphComputer.Persist persist)
Set the
GraphComputer.Persist level of the computation. |
GraphComputer |
program(VertexProgram vertexProgram)
Set the
VertexProgram to be executed by the GraphComputer . |
GraphComputer |
result(GraphComputer.ResultGraph resultGraph)
Set the
GraphComputer.ResultGraph of the computation. |
Future<ComputerResult> |
submit()
|
GraphComputer |
vertices(Traversal<Vertex,Vertex> vertexFilter)
Add a filter that will limit which vertices are loaded from the graph source.
|
GraphComputer |
workers(int workers)
Set the desired number of workers to execute the
VertexProgram and MapReduce jobs. |
GraphComputer result(GraphComputer.ResultGraph resultGraph)
GraphComputer.ResultGraph
of the computation. If this is not set explicitly by the user, then the
VertexProgram
can choose the most efficient result for its intended use. If there is no declared
vertex program, then the GraphComputer
defaults to GraphComputer.ResultGraph.ORIGINAL
.resultGraph
- the type of graph to be returned by ComputerResult.graph()
GraphComputer persist(GraphComputer.Persist persist)
GraphComputer.Persist
level of the computation. If this is not set explicitly by the user, then the\
VertexProgram
can choose the most efficient persist for the its intended use. If there is no declared
vertex program, then the GraphComputer
defaults to GraphComputer.Persist.NOTHING
.persist
- the persistence level of the resultant computationGraphComputer program(VertexProgram vertexProgram)
VertexProgram
to be executed by the GraphComputer
.
There can only be one VertexProgram for the GraphComputer.vertexProgram
- the VertexProgram to be executedGraphComputer mapReduce(MapReduce mapReduce)
MapReduce
job to the set of MapReduce jobs to be executed by the GraphComputer
.
There can be any number of MapReduce jobs.mapReduce
- the MapReduce job to add to the computationGraphComputer workers(int workers)
VertexProgram
and MapReduce
jobs. This is a
recommendation to the underlying GraphComputer
implementation and is allowed to deviate accordingly by
the implementation.workers
- the number of workers to execute the submissionGraphComputer vertices(Traversal<Vertex,Vertex> vertexFilter) throws IllegalArgumentException
Traversal
can 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.vertexFilter
- the traversal to verify whether or not to load the current vertexIllegalArgumentException
- if the provided traversal attempts to access vertex edgesGraphComputer edges(Traversal<Vertex,Edge> edgeFilter) throws IllegalArgumentException
Traversal
can 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.edgeFilter
- the traversal that determines which edges are loaded for each vertexIllegalArgumentException
- if the provided traversal attempts to access adjacent verticesdefault GraphComputer configure(String key, Object value)
Configuration
in the GraphComputer
.
Typically, the other fluent methods in GraphComputer
should 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 the GraphComputer
unchanged.key
- the key of the configurationvalue
- the value of the configurationFuture<ComputerResult> submit()
Future
denoting a reference to the asynchronous computation and where to get the DefaultComputerResult
when its is complete.default GraphComputer.Features features()
Copyright © 2013–2020 Apache Software Foundation. All rights reserved.