I see, and how would a traversal like g.V().repeat(out()).times(4) look like with the Barrier? Where does the step go?
Wouldn't it be simpler and more standard with the rest of gremlin if the inner traversals acted by default in a global scope fashion? Anyone needing a local behavior could add a LocalStep per his needs. Why do Repeat and Coalesce include Local features in addition to their main purpose? On יום ו׳, 14 באוג׳ 2015 at 17:10 Marko A. Rodriguez (JIRA) <[email protected]> wrote: > > [ > https://issues.apache.org/jira/browse/TINKERPOP3-702?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14697075#comment-14697075 > ] > > Marko A. Rodriguez commented on TINKERPOP3-702: > ----------------------------------------------- > > It would look like this: > > {code} > public class ForceFeedStep extends AbstractStep { > > public Traverser processNextStarts() { > while(starts.hasNext()) { > this.getNextStep().add(start.next()) > } > return EmptyTraverser.instance(); > } > } > {code} > > A {{maxFeed}} int can be provided in the {{while()}} predicate so you > don't always fully drain the header pipeline (and thus, control memory). > > > > Buffer input to inner traversals > > -------------------------------- > > > > Key: TINKERPOP3-702 > > URL: > https://issues.apache.org/jira/browse/TINKERPOP3-702 > > Project: TinkerPop 3 > > Issue Type: Improvement > > Components: process > > Reporter: Ran Magen > > Assignee: Marko A. Rodriguez > > Fix For: 3.0.0-incubating > > > > > > In elastic-gremlin we implement an optimized VertexStep. Part of its job > is to batch/buffer/bulk different traversers and query them together > in-order to minizmize the number of queries. > > You can see the implementation here: > https://github.com/rmagen/elastic-gremlin/blob/master/src/main/java/org/elasticgremlin/process/optimize/ElasticVertexStep.java#L36 > > This works great in regular traversals, the "starts" iterator returns as > many traversers as the previous step gave out. > > But when the step is in an innerTraversal (e.g. > g.V().repeat(__.out()).times(8)), the "starts" iterator only returns one > traverser, and will return the next traverser only in the next call to > processNextStart. Thus, there is no way to run a bulk query. > > > > -- > This message was sent by Atlassian JIRA > (v6.3.4#6332) >
