[
https://issues.apache.org/jira/browse/TINKERPOP3-772?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14631461#comment-14631461
]
Matt Frantz commented on TINKERPOP3-772:
----------------------------------------
Aside from the "drop path" suggestion (which perhaps could be split into a
separate ticket), this is a duplicate of TINKERPOP3-759. This ticket has more
"how-to" while the other has "why-to".
> TraverserRequirement.LABELED_PATH
> ---------------------------------
>
> Key: TINKERPOP3-772
> URL: https://issues.apache.org/jira/browse/TINKERPOP3-772
> Project: TinkerPop 3
> Issue Type: Improvement
> Components: process
> Affects Versions: 3.0.0-incubating
> Reporter: Marko A. Rodriguez
> Assignee: Marko A. Rodriguez
> Fix For: 3.1.0-incubating
>
>
> Path computations are "all or nothing" right now. That is, if a step requires
> path data (history), then the complete history of the traverser is recorded.
> However, there are only a few steps that actually require full history. These
> are:
> * {{PathStep}}
> * {{SimplePath}}
> * {{CyclicPath}}
> All other steps that use path history, require only those path steps that are
> labeled. For instance:
> * {{MatchStep}}
> * {{SelectStep}}
> * {{WhereStep}}
> * {{DedupGlobalStep}}
> * ...
> Thus, we should add a new {{TraverserRequirement}} called {{LABELED_PATH}}.
> This requirement says, "only Path.extend() if the step is labeled." This will
> increase the probability of bulking and will allow regions of a traversal
> that don't require paths to not generate that data (and thus, reduce the
> memory footprint).
> Another idea we should consider, which I believe would be added as a
> {{FinalizationStrategy}}, is {{DropPathStep}}. This would say: "after this
> point, the following labels are no longer needed so when the traverser comes
> here, delete the history for labels x, y, z..." This will allow us to prune
> path data to again, increase the probability of bulking.
> There is one odd duck step that {{LABELED_PATH}} should help, but doesn't:
> * {{OtherVertexStep}}
> There is no label, but we only need the path history of the last vertex. I
> suspect "hidden path labels" is what we need (and have proposed in an other
> ticket for optimizing {{match()}}).
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)