public class BatchGraph<G extends Graph> extends java.lang.Object implements Graph, Graph.Iterators
BatchGraph is a wrapper that enables batch loading of a large number of edges and vertices by chunking the entire
load into smaller batches and maintaining a sideEffects-efficient vertex cache so that the entire transactional state can
be flushed after each chunk is loaded.
BatchGraph is ONLY meant for loading data and does not support any retrieval or removal operations.
That is, BatchGraph only supports the following methods:
- addVertex(Object...) for adding vertices
- Vertex.addEdge(String, com.tinkerpop.gremlin.structure.Vertex, Object...) for adding edges
- Graph.V(Object...) to be used when adding edges
- Property getter, setter and removal methods for vertices and edges.
BatchGraph can also automatically set the provided element ids as properties on the respective element. Use
BatchGraph.Builder.vertexIdKey(String) and BatchGraph.Builder.edgeIdKey(String) to set the keys
for the vertex and edge properties respectively. This allows to make the loaded baseGraph compatible for later
operation with IdStrategy.
BatchGraph itself is not a GraphStrategy because
it requires that the Vertex implementation not hold on to the underlying Vertex reference and
StrategyVertex does that by it's very nature. While it might
be possible to work around this issue, it is likely better for performance to simply leave this as a "half-wrapper"
implementation, instead of forcing it into a GraphStrategy.| Modifier and Type | Class and Description |
|---|---|
static class |
BatchGraph.Builder<G extends Graph> |
Graph.Exceptions, Graph.Features, Graph.Helper, Graph.Hidden, Graph.Io, Graph.Iterators, Graph.OptIn, Graph.OptIns, Graph.OptOut, Graph.OptOuts, Graph.Variables| Modifier and Type | Field and Description |
|---|---|
static long |
DEFAULT_BUFFER_SIZE
Default buffer size is 10000.
|
| Modifier and Type | Method and Description |
|---|---|
Vertex |
addVertex(java.lang.Object... keyValues)
Add a
Vertex to the graph given an optional series of key/value pairs. |
static <T extends Graph> |
build(T g) |
void |
close() |
GraphComputer |
compute(java.lang.Class... graphComputerClass)
Create an OLAP
GraphComputer to execute a vertex program over this graph. |
org.apache.commons.configuration.Configuration |
configuration()
Get the
Configuration associated with the construction of this graph. |
GraphTraversal<Edge,Edge> |
E(java.lang.Object... edgeIds)
Starts a
GraphTraversal over the edges in the graph. |
java.util.Iterator<Edge> |
edgeIterator(java.lang.Object... edgeIds)
Get the
Edge objects in this graph with the provided edge ids. |
Graph.Features |
features()
Gets the
Graph.Features exposed by the underlying Graph implementation. |
Graph.Iterators |
iterators()
Get the
Graph.Iterators associated with this graph. |
<T extends Traversal<S,S>,S> |
of(java.lang.Class<T> traversalClass)
Constructs a new domain specific
Traversal for this graph. |
Transaction |
tx()
Configure and control the transactions for those graphs that support this feature.
|
Graph.Variables |
variables()
A collection of global
Graph.Variables associated with the graph. |
java.util.Iterator<Vertex> |
vertexIterator(java.lang.Object... vertexIds)
Get the
Vertex objects in this graph with the provided vertex ids. |
public static final long DEFAULT_BUFFER_SIZE
public Vertex addVertex(java.lang.Object... keyValues)
GraphVertex to the graph given an optional series of key/value pairs. These key/values
must be provided in an even number where the odd numbered arguments are String property keys and the
even numbered arguments are the related property values.public GraphTraversal<Edge,Edge> E(java.lang.Object... edgeIds)
GraphGraphTraversal over the edges in the graph.
If edgeIds are provided, then the traversal starts at those edges, else all edges in the graph.public Graph.Iterators iterators()
GraphGraph.Iterators associated with this graph.public java.util.Iterator<Vertex> vertexIterator(java.lang.Object... vertexIds)
Graph.IteratorsVertex objects in this graph with the provided vertex ids. If no ids are provided, get all vertices.vertexIterator in interface Graph.IteratorsvertexIds - the ids of the vertices to getIterator of vertices that match the provided vertex idspublic java.util.Iterator<Edge> edgeIterator(java.lang.Object... edgeIds)
Graph.IteratorsEdge objects in this graph with the provided edge ids. If no ids are provided, get all edges.edgeIterator in interface Graph.IteratorsedgeIds - the ids of the edges to getIterator of edges that match the provided edge idspublic <T extends Traversal<S,S>,S> T of(java.lang.Class<T> traversalClass)
GraphTraversal for this graph.public GraphComputer compute(java.lang.Class... graphComputerClass)
GraphGraphComputer to execute a vertex program over this graph.
If the graph does not support graph computer then an UnsupportedOperationException is thrown.
The provided arguments can be of either length 0 or 1. A graph can support multiple graph computers.public Transaction tx()
Graphpublic Graph.Variables variables()
GraphGraph.Variables associated with the graph.
Variables are used for storing metadata about the graph.public org.apache.commons.configuration.Configuration configuration()
GraphConfiguration associated with the construction of this graph.
Whatever configuration was passed to GraphFactory.open(org.apache.commons.configuration.Configuration)
is what should be returned by this method.configuration in interface Graphpublic Graph.Features features()
GraphGraph.Features exposed by the underlying Graph implementation.public void close()
throws java.lang.Exception
close in interface java.lang.AutoCloseablejava.lang.Exceptionpublic static <T extends Graph> BatchGraph.Builder build(T g)
Copyright © 2013-2015 TinkerPop. All Rights Reserved.