[ 
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)

Reply via email to