[ 
https://issues.apache.org/jira/browse/TINKERPOP-1293?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15278708#comment-15278708
 ] 

ASF GitHub Bot commented on TINKERPOP-1293:
-------------------------------------------

GitHub user okram opened a pull request:

    https://github.com/apache/incubator-tinkerpop/pull/310

    TINKERPOP-1293: Implement GraphFilterStrategy as a default registration for 
GraphComputer

    https://issues.apache.org/jira/browse/TINKERPOP-1293
    
    `GraphFilterStrategy` (traversal optimization strategy) will create a graph 
filter for the OLAP traversal if one has not already been provided. This is 
made possible by `GraphFilterStrategy` analyzing the traversal to determine 
which edge directions/labels are being accessed and generating a traversal that 
meets that criteria. Along with this, `GraphFilter` has been advanced more 
intelligence, more test cases, more JavaDoc, and more helper methods for 
`GraphComputer` providers.
    
    `GraphFilterStrategy` is a default `GraphComputer` strategy that is 
deactivated by `TinkerGraphComputer` as edge filters are expensive in 
`TinkerGraphComputer` given that the entire graph is already loaded into memory 
and any filtering requires labeled edges as being filtered (or not).
    
    `mvn clean install`, Spark integration tests passing, and Giraph 
integration tests passing thus far...
    
    VOTE +1.

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/apache/incubator-tinkerpop TINKERPOP-1293

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/incubator-tinkerpop/pull/310.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #310
    
----

----


> Implement GraphFilterStrategy as a default registration for GraphComputer
> -------------------------------------------------------------------------
>
>                 Key: TINKERPOP-1293
>                 URL: https://issues.apache.org/jira/browse/TINKERPOP-1293
>             Project: TinkerPop
>          Issue Type: Improvement
>          Components: process
>    Affects Versions: 3.2.0-incubating
>            Reporter: Marko A. Rodriguez
>            Assignee: Marko A. Rodriguez
>             Fix For: 3.2.1
>
>
> {{GraphFilterStrategy}} would be a {{TraversalStrategy}} for 
> {{GraphComputers}}. It will inspect the {{Traversal}} and decide the 
> {{computer.vertices(...).edges(...)}} to use.
> Some rules:
> 1. If the traversal is part of an OLAP chain, don't apply strategy.
> 2. If the traversal is persist edges, then don't {{edges(...)}} or 
> {{vertices(...)}}.
> 3. If the traversal is persist vertex properties, then don't do 
> {{vertices(...)}}.
> Shouldn't be too difficult. Basically looking for:
> 1. {{VertexStep}} labels for edges.
> 2. {{HasStep}} containers for vertices and edges.
> From there, we can get fancy with {{outE().has("stars",gt(4))}}-style 
> {{edges(...)}}. However, basic element-label based filtering should be easy.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to