a bunch of minor optimizations to the Traverser species (direct refernece calls 
instead of method calls) and made MatchStep a bit more efficient too for local 
barrier.


Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/cc590624
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/cc590624
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/cc590624

Branch: refs/heads/TINKERPOP-1278
Commit: cc5906246e58b8bd3d5dc114a6d77c2fd950adce
Parents: 9242421
Author: Marko A. Rodriguez <okramma...@gmail.com>
Authored: Tue Jul 12 17:20:11 2016 -0600
Committer: Marko A. Rodriguez <okramma...@gmail.com>
Committed: Tue Jul 12 17:20:11 2016 -0600

----------------------------------------------------------------------
 .../gremlin/process/traversal/step/map/MatchStep.java     | 10 ++++------
 .../traversal/traverser/B_LP_O_P_S_SE_SL_Traverser.java   |  8 ++++----
 .../traversal/traverser/LP_O_OB_P_S_SE_SL_Traverser.java  |  8 ++++----
 .../traversal/traverser/LP_O_OB_S_SE_SL_Traverser.java    |  8 ++++----
 .../traversal/traverser/O_OB_S_SE_SL_Traverser.java       |  6 +++---
 .../tinkergraph/structure/TinkerGraphPlayTest.java        |  2 +-
 6 files changed, 20 insertions(+), 22 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/cc590624/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/MatchStep.java
----------------------------------------------------------------------
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/MatchStep.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/MatchStep.java
index d829020..8909d68 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/MatchStep.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/MatchStep.java
@@ -364,19 +364,17 @@ public final class MatchStep<S, E> extends 
ComputerAwareStep<S, Map<String, E>>
                         this.keepLabels.containsAll(this.matchEndLabels) &&
                         this.keepLabels.containsAll(this.matchStartLabels))
                     this.keepLabels = null;
-            } else { // TODO: if(standardAlgorithmBarrier.isEmpty()) -- leads 
to consistent counts without retracting paths, but orders of magnitude slower.
+            } else { // TODO: if(standardAlgorithmBarrier.isEmpty()) -- leads 
to consistent counts without retracting paths, but orders of magnitude slower 
(or make Traverser.tags an equality concept)
                 boolean stop = false;
                 for (final Traversal.Admin<?, ?> matchTraversal : 
this.matchTraversals) {
-                    while (matchTraversal.hasNext() &&
-                            this.standardAlgorithmBarrier.size() < 
PathRetractionStrategy.DEFAULT_STANDARD_BARRIER_SIZE) { // TODO: perhaps make 
MatchStep a LocalBarrierStep ??
+                    while (matchTraversal.hasNext()) { // TODO: perhaps make 
MatchStep a LocalBarrierStep ??
                         
this.standardAlgorithmBarrier.add(matchTraversal.getEndStep().next());
-                        if (null == this.keepLabels) {
+                        if (null == this.keepLabels || 
this.standardAlgorithmBarrier.size() >= 
PathRetractionStrategy.DEFAULT_STANDARD_BARRIER_SIZE) {
                             stop = true;
                             break;
                         }
                     }
-                    if (stop)
-                        break;
+                    if (stop) break;
                 }
             }
             final Traverser.Admin traverser;

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/cc590624/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/traverser/B_LP_O_P_S_SE_SL_Traverser.java
----------------------------------------------------------------------
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/traverser/B_LP_O_P_S_SE_SL_Traverser.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/traverser/B_LP_O_P_S_SE_SL_Traverser.java
index 30641bb..7064cd0 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/traverser/B_LP_O_P_S_SE_SL_Traverser.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/traverser/B_LP_O_P_S_SE_SL_Traverser.java
@@ -87,11 +87,11 @@ public class B_LP_O_P_S_SE_SL_Traverser<T> extends 
B_O_S_SE_SL_Traverser<T> {
     @Override
     public boolean equals(final Object object) {
         return (object instanceof B_LP_O_P_S_SE_SL_Traverser)
-                && ((B_LP_O_P_S_SE_SL_Traverser) object).get().equals(this.t)
-                && ((B_LP_O_P_S_SE_SL_Traverser) 
object).getStepId().equals(this.getStepId())
-                && ((B_LP_O_P_S_SE_SL_Traverser) object).loops() == 
this.loops()
+                && ((B_LP_O_P_S_SE_SL_Traverser) object).t.equals(this.t)
+                && ((B_LP_O_P_S_SE_SL_Traverser) 
object).future.equals(this.future)
+                && ((B_LP_O_P_S_SE_SL_Traverser) object).loops == this.loops
                 && (null == this.sack || null != 
this.sideEffects.getSackMerger())
-                && ((B_LP_O_P_S_SE_SL_Traverser) 
object).path().equals(this.path);
+                && ((B_LP_O_P_S_SE_SL_Traverser) 
object).path.equals(this.path);
     }
 
 }

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/cc590624/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/traverser/LP_O_OB_P_S_SE_SL_Traverser.java
----------------------------------------------------------------------
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/traverser/LP_O_OB_P_S_SE_SL_Traverser.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/traverser/LP_O_OB_P_S_SE_SL_Traverser.java
index 97b79a4..5f24e8c 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/traverser/LP_O_OB_P_S_SE_SL_Traverser.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/traverser/LP_O_OB_P_S_SE_SL_Traverser.java
@@ -112,11 +112,11 @@ public class LP_O_OB_P_S_SE_SL_Traverser<T> extends 
O_OB_S_SE_SL_Traverser<T> {
     @Override
     public boolean equals(final Object object) {
         return (object instanceof LP_O_OB_P_S_SE_SL_Traverser)
-                && ((LP_O_OB_P_S_SE_SL_Traverser) object).get().equals(this.t)
-                && ((LP_O_OB_P_S_SE_SL_Traverser) 
object).getStepId().equals(this.getStepId())
-                && ((LP_O_OB_P_S_SE_SL_Traverser) object).loops() == 
this.loops()
+                && ((LP_O_OB_P_S_SE_SL_Traverser) object).t.equals(this.t)
+                && ((LP_O_OB_P_S_SE_SL_Traverser) 
object).future.equals(this.future)
+                && ((LP_O_OB_P_S_SE_SL_Traverser) object).loops == this.loops
                 && (null == this.sack || null != 
this.sideEffects.getSackMerger())
-                && ((LP_O_OB_P_S_SE_SL_Traverser) 
object).path().equals(this.path);
+                && ((LP_O_OB_P_S_SE_SL_Traverser) 
object).path.equals(this.path);
     }
 
 }

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/cc590624/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/traverser/LP_O_OB_S_SE_SL_Traverser.java
----------------------------------------------------------------------
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/traverser/LP_O_OB_S_SE_SL_Traverser.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/traverser/LP_O_OB_S_SE_SL_Traverser.java
index 8ec5de5..c9cc67c 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/traverser/LP_O_OB_S_SE_SL_Traverser.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/traverser/LP_O_OB_S_SE_SL_Traverser.java
@@ -93,10 +93,10 @@ public class LP_O_OB_S_SE_SL_Traverser<T> extends 
O_OB_S_SE_SL_Traverser<T> {
     @Override
     public boolean equals(final Object object) {
         return (object instanceof LP_O_OB_S_SE_SL_Traverser)
-                && ((LP_O_OB_S_SE_SL_Traverser) object).get().equals(this.t)
-                && ((LP_O_OB_S_SE_SL_Traverser) 
object).getStepId().equals(this.getStepId())
-                && ((LP_O_OB_S_SE_SL_Traverser) object).loops() == this.loops()
+                && ((LP_O_OB_S_SE_SL_Traverser) object).t.equals(this.t)
+                && ((LP_O_OB_S_SE_SL_Traverser) 
object).future.equals(this.future)
+                && ((LP_O_OB_S_SE_SL_Traverser) object).loops == this.loops
                 && (null == this.sack || null != 
this.sideEffects.getSackMerger())
-                && ((LP_O_OB_S_SE_SL_Traverser) 
object).path().popEquals(Pop.last, this.path); // this should be Pop.all?
+                && ((LP_O_OB_S_SE_SL_Traverser) 
object).path.popEquals(Pop.last, this.path); // this should be Pop.all?
     }
 }

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/cc590624/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/traverser/O_OB_S_SE_SL_Traverser.java
----------------------------------------------------------------------
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/traverser/O_OB_S_SE_SL_Traverser.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/traverser/O_OB_S_SE_SL_Traverser.java
index 1ed5ad9..44a7cbb 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/traverser/O_OB_S_SE_SL_Traverser.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/traverser/O_OB_S_SE_SL_Traverser.java
@@ -130,9 +130,9 @@ public class O_OB_S_SE_SL_Traverser<T> extends 
O_Traverser<T> {
     @Override
     public boolean equals(final Object object) {
         return object instanceof O_OB_S_SE_SL_Traverser
-                && ((O_OB_S_SE_SL_Traverser) object).get().equals(this.t)
-                && ((O_OB_S_SE_SL_Traverser) 
object).getStepId().equals(this.getStepId())
-                && ((O_OB_S_SE_SL_Traverser) object).loops() == this.loops()
+                && ((O_OB_S_SE_SL_Traverser) object).t.equals(this.t)
+                && ((O_OB_S_SE_SL_Traverser) object).future.equals(this.future)
+                && ((O_OB_S_SE_SL_Traverser) object).loops == this.loops
                 && (null == this.sack || (null != this.sideEffects && null != 
this.sideEffects.getSackMerger())); // hmmm... serialization in OLAP destroys 
the transient sideEffects
     }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/cc590624/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerGraphPlayTest.java
----------------------------------------------------------------------
diff --git 
a/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerGraphPlayTest.java
 
b/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerGraphPlayTest.java
index 33a3d94..3654ffd 100644
--- 
a/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerGraphPlayTest.java
+++ 
b/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerGraphPlayTest.java
@@ -80,7 +80,7 @@ public class TinkerGraphPlayTest {
             System.out.println(source.V().has("performances", P.gt(500)).match(
                     __.as("a").out().as("b"),
                     __.as("b").out().as("c"),
-                    
__.as("c").out().as("a")).select("a","b","c").profile().next());
+                    __.as("c").out().as("a")).select("a").profile().next());
         }
     }
 

Reply via email to