public class JanusGraphLabelStep<S extends org.apache.tinkerpop.gremlin.structure.Element> extends org.apache.tinkerpop.gremlin.process.traversal.step.map.LabelStep<S> implements org.apache.tinkerpop.gremlin.process.traversal.step.Profiling, MultiQueriable<S,String>
LabelStep
and adds vertices multi-query optimization to this step.
Before this step is evaluated it usually receives multiple future vertices which might be processed next with this step. This step stores all these vertices which might be needed later for evaluation and whenever this step receives the vertex for evaluation which wasn't preFetched previously it sends multi-query for a batch of vertices to fetch their labels.
This step optimizes only access to Vertex labels and skips optimization for any other Element.
Constructor and Description |
---|
JanusGraphLabelStep(org.apache.tinkerpop.gremlin.process.traversal.step.map.LabelStep<S> originalStep) |
Modifier and Type | Method and Description |
---|---|
protected String |
map(org.apache.tinkerpop.gremlin.process.traversal.Traverser.Admin<S> traverser) |
void |
registerFirstNewLoopFutureVertexForPrefetching(org.apache.tinkerpop.gremlin.structure.Vertex futureVertex,
int futureVertexTraverserLoop)
Registers a vertex which will pass this step at some point in the future.
|
void |
registerNextLoopFutureVertexForPrefetching(org.apache.tinkerpop.gremlin.structure.Vertex futureVertex,
int futureVertexTraverserLoop)
Registers a vertex which will pass this step at some point in the future.
|
void |
registerSameLoopFutureVertexForPrefetching(org.apache.tinkerpop.gremlin.structure.Vertex futureVertex,
int futureVertexTraverserLoop)
Registers a vertex which will pass this step at some point in the future.
|
void |
setBatchSize(int batchSize) |
void |
setMetrics(org.apache.tinkerpop.gremlin.process.traversal.util.MutableMetrics metrics) |
void |
setUseMultiQuery(boolean useMultiQuery) |
getRequirements
processNextStart
addLabel, addStart, addStarts, clearLabels, clone, equals, getId, getLabels, getNextStep, getPreviousStep, getStarts, getTraversal, hashCode, hasNext, hasStarts, isTraverserStepIdAndLabelsSetByChild, next, prepareTraversalForNextStep, removeLabel, reset, setId, setNextStep, setPreviousStep, setTraversal, toString
finalize, getClass, notify, notifyAll, wait, wait, wait
addLabel, addStart, addStarts, clearLabels, clone, equals, getId, getLabels, getNextStep, getPreviousStep, getRequirements, getTraversal, hasStarts, removeLabel, reset, setId, setNextStep, setPreviousStep, setTraversal
forEachRemaining, hasNext, next, remove
public JanusGraphLabelStep(org.apache.tinkerpop.gremlin.process.traversal.step.map.LabelStep<S> originalStep)
protected String map(org.apache.tinkerpop.gremlin.process.traversal.Traverser.Admin<S> traverser)
map
in class org.apache.tinkerpop.gremlin.process.traversal.step.map.LabelStep<S extends org.apache.tinkerpop.gremlin.structure.Element>
public void setUseMultiQuery(boolean useMultiQuery)
setUseMultiQuery
in interface MultiQueriable<S extends org.apache.tinkerpop.gremlin.structure.Element,String>
public void setBatchSize(int batchSize)
setBatchSize
in interface MultiQueriable<S extends org.apache.tinkerpop.gremlin.structure.Element,String>
public void registerFirstNewLoopFutureVertexForPrefetching(org.apache.tinkerpop.gremlin.structure.Vertex futureVertex, int futureVertexTraverserLoop)
MultiQueriable
registerFirstNewLoopFutureVertexForPrefetching
in interface MultiQueriable<S extends org.apache.tinkerpop.gremlin.structure.Element,String>
futureVertex
- The vertex which will reach the step in the future.futureVertexTraverserLoop
- In case traverser of the vertex supports loop then it should be provided
via this parameter. Otherwise, `0` should be provided.public void registerSameLoopFutureVertexForPrefetching(org.apache.tinkerpop.gremlin.structure.Vertex futureVertex, int futureVertexTraverserLoop)
MultiQueriable
registerSameLoopFutureVertexForPrefetching
in interface MultiQueriable<S extends org.apache.tinkerpop.gremlin.structure.Element,String>
futureVertex
- The vertex which will reach the step in the future.futureVertexTraverserLoop
- In case traverser of the vertex supports loop then it should be provided
via this parameter. Otherwise, `0` should be provided.public void registerNextLoopFutureVertexForPrefetching(org.apache.tinkerpop.gremlin.structure.Vertex futureVertex, int futureVertexTraverserLoop)
MultiQueriable
registerNextLoopFutureVertexForPrefetching
in interface MultiQueriable<S extends org.apache.tinkerpop.gremlin.structure.Element,String>
futureVertex
- The vertex which will reach the step in the future.futureVertexTraverserLoop
- In case traverser of the vertex supports loop then it should be provided
* via this parameter. Otherwise, `0` should be provided.public void setMetrics(org.apache.tinkerpop.gremlin.process.traversal.util.MutableMetrics metrics)
setMetrics
in interface org.apache.tinkerpop.gremlin.process.traversal.step.Profiling
Copyright © 2012–2024. All rights reserved.