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

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

Github user twilmes commented on the issue:

    https://github.com/apache/tinkerpop/pull/358
  
    That's excellent!  Integration tests almost ran all the way through for me, 
got an odd failure during the Archetype - Server, noted below.  I'm going to 
rerun anyway with the latest commit and using docker this time.
    
    ```
    [INFO] 
------------------------------------------------------------------------
    [INFO] Reactor Summary:
    [INFO]
    [INFO] Apache TinkerPop ................................... SUCCESS [  
9.540 s]
    [INFO] Apache TinkerPop :: Gremlin Shaded ................. SUCCESS [  
3.640 s]
    [INFO] Apache TinkerPop :: Gremlin Core ................... SUCCESS [01:27 
min]
    [INFO] Apache TinkerPop :: Gremlin Test ................... SUCCESS [ 
11.518 s]
    [INFO] Apache TinkerPop :: Gremlin Groovy ................. SUCCESS [ 
49.133 s]
    [INFO] Apache TinkerPop :: Gremlin Groovy Test ............ SUCCESS [  
8.280 s]
    [INFO] Apache TinkerPop :: TinkerGraph Gremlin ............ SUCCESS [03:40 
min]
    [INFO] Apache TinkerPop :: Gremlin Benchmark .............. SUCCESS [  
4.660 s]
    [INFO] Apache TinkerPop :: Hadoop Gremlin ................. SUCCESS [06:14 
min]
    [INFO] Apache TinkerPop :: Spark Gremlin .................. SUCCESS [19:37 
min]
    [INFO] Apache TinkerPop :: Giraph Gremlin ................. SUCCESS [  
02:54 h]
    [INFO] Apache TinkerPop :: Neo4j Gremlin .................. SUCCESS [  
4.160 s]
    [INFO] Apache TinkerPop :: Gremlin Driver ................. SUCCESS [ 
11.340 s]
    [INFO] Apache TinkerPop :: Gremlin Server ................. SUCCESS [12:58 
min]
    [INFO] Apache TinkerPop :: Gremlin Console ................ SUCCESS [01:36 
min]
    [INFO] Apache TinkerPop :: Gremlin Archetype .............. SUCCESS [  
0.151 s]
    [INFO] Apache TinkerPop :: Archetype - TinkerGraph ........ FAILURE [  
0.374 s]
    [INFO] Apache TinkerPop :: Archetype - Server ............. SKIPPED
    [INFO] 
------------------------------------------------------------------------
    [INFO] BUILD FAILURE
    [INFO] 
------------------------------------------------------------------------
    [INFO] Total time: 03:41 h
    [INFO] Finished at: 2016-07-10T15:06:49-05:00
    [INFO] Final Memory: 66M/727M
    [INFO] 
------------------------------------------------------------------------
    [ERROR] Failed to execute goal 
org.apache.maven.plugins:maven-surefire-plugin:2.17:test (default-test) on 
project gremlin-archetype-tinkergraph: Execution default-test of goal 
org.apache.maven.plugins:maven-surefire-plugin:2.17:test failed: There was an 
error in the forke
    d process
    [ERROR] java.lang.NoClassDefFoundError: 
projects/standard/project/gremlin-archetype-tinkergraph/target/test-classes/com/test/example/AppTest
 (wrong name: com/test/example/AppTest)
    [ERROR] at java.lang.ClassLoader.defineClass1(Native Method)
    [ERROR] at java.lang.ClassLoader.defineClass(ClassLoader.java:760)
    [ERROR] at 
java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    ```


> Support dropping traverser path information when it is no longer needed.
> ------------------------------------------------------------------------
>
>                 Key: TINKERPOP-1254
>                 URL: https://issues.apache.org/jira/browse/TINKERPOP-1254
>             Project: TinkerPop
>          Issue Type: Improvement
>          Components: process
>    Affects Versions: 3.1.1-incubating
>            Reporter: Marko A. Rodriguez
>            Assignee: Ted Wilmes
>
> The most expensive traversals (especially in OLAP) are those that can not be 
> "bulked." There are various reasons why two traversers at the same object can 
> not be bulked, but the primary reason is {{PATH}} or {{LABELED_PATH}}. That 
> is, when the history of the traverser is required, the probability of two 
> traversers having the same history is low.
> A key to making traversals more efficient is to do as a much as possible to 
> remove historic information from a traverser so it can get bulked. How does 
> one do this? 
> {code}
> g.V.as('a').out().as('b').out().where(neq('a').and().neq('b')).both().name
> {code}
> The {{LABELED_PATH}} of "a" and "b" are required up to the {{where()}} and at 
> which point, at {{both()}}, they are no longer required. It would be smart to 
> support:
> {code}
> traverser.dropLabels(Set<String>)
> traverser.dropPath()
> {code}
> We would then, via a {{TraversalOptimizationStrategy}} insert a step between 
> {{where()}} and {{both()}} called {{PathPruneStep}} which would be a 
> {{SideEffectStep}}. The strategy would know which labels were no longer 
> needed (via forward lookahead) and then do:
> {code}
> public class PathPruneStep {
>   final Set<String> dropLabels = ...
>   final boolean dropPath = ...
>   public void sideEffect(final Traverser<S> traverser) {
>     final Traverser<S> start = this.starts.next();
>     if(this.dropPath) start.dropPath();
>     else start.dropLabels(labels); 
>   }
> }
> {code}
> Again, the more we can prune historic path data no longer needed, the higher 
> the probability of bulking. Think about this in terms of {{match()}}.
> {code}
> g.V().match(
>   a.out.b,
>   b.out.c,
>   c.neq.a,
>   c.out.b,
> ).select("a")
> {code}
> All we need is "a" at the end. Thus, once a pattern has been passed and no 
> future patterns require that label, drop it! 
> This idea is related to TINKERPOP-331, but I don't think we should deal with 
> manipulating the species. Thus, I think 331 is too "low level."



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

Reply via email to