You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by ok...@apache.org on 2017/01/23 18:44:27 UTC

tinkerpop git commit: figured out I was setting the resultant traverals side-effects. fixed that up and now the SideEffectTest travesals pass. So close to all tests passing for GraphActors.

Repository: tinkerpop
Updated Branches:
  refs/heads/TINKERPOP-1564 15a122c30 -> 6c8517d92


figured out I was setting the resultant traverals side-effects. fixed that up and now the SideEffectTest travesals pass. So close to all tests passing for GraphActors.


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

Branch: refs/heads/TINKERPOP-1564
Commit: 6c8517d9249a3c220bcf4c293da5d4fee643ea6a
Parents: 15a122c
Author: Marko A. Rodriguez <ok...@gmail.com>
Authored: Mon Jan 23 11:44:19 2017 -0700
Committer: Marko A. Rodriguez <ok...@gmail.com>
Committed: Mon Jan 23 11:44:19 2017 -0700

----------------------------------------------------------------------
 .../gremlin/akka/process/actors/AkkaActorsProvider.java      | 6 ++----
 .../org/apache/tinkerpop/gremlin/jsr223/JavaTranslator.java  | 4 +++-
 .../process/actors/traversal/TraversalActorProgram.java      | 3 +--
 .../process/actors/traversal/TraversalMasterProgram.java     | 7 ++++++-
 .../actors/traversal/step/map/TraversalActorProgramStep.java | 8 ++++++--
 .../apache/tinkerpop/gremlin/process/traversal/Bytecode.java | 4 +++-
 6 files changed, 21 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/6c8517d9/akka-gremlin/src/test/java/org/apache/tinkerpop/gremlin/akka/process/actors/AkkaActorsProvider.java
----------------------------------------------------------------------
diff --git a/akka-gremlin/src/test/java/org/apache/tinkerpop/gremlin/akka/process/actors/AkkaActorsProvider.java b/akka-gremlin/src/test/java/org/apache/tinkerpop/gremlin/akka/process/actors/AkkaActorsProvider.java
index d3a2d6e..fde786c 100644
--- a/akka-gremlin/src/test/java/org/apache/tinkerpop/gremlin/akka/process/actors/AkkaActorsProvider.java
+++ b/akka-gremlin/src/test/java/org/apache/tinkerpop/gremlin/akka/process/actors/AkkaActorsProvider.java
@@ -26,7 +26,6 @@ import org.apache.tinkerpop.gremlin.process.traversal.TraversalInterruptionTest;
 import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource;
 import org.apache.tinkerpop.gremlin.process.traversal.step.map.GraphTest;
 import org.apache.tinkerpop.gremlin.process.traversal.step.map.ProfileTest;
-import org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.SideEffectTest;
 import org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.SubgraphTest;
 import org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.ElementIdStrategyProcessTest;
 import org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.EventStrategyProcessTest;
@@ -53,11 +52,10 @@ public class AkkaActorsProvider extends AbstractTinkerGraphProvider {
             "g_withBulkXfalseX_withSackX1_sumX_V_out_barrier_sack",
             "g_V_repeatXdedupX_timesX2X_count",
             "g_withSackXmap__map_cloneX_V_out_out_sackXmap_a_nameX_sack",
-            "g_V_group_byXlabelX_byXbothE_groupXaX_byXlabelX_byXweight_sumX_weight_sumX",
-            "classicRecommendation",
+            "g_VX1X_sideEffectXstore_aX_name",
+            "g_VX1X_out_sideEffectXincr_cX_name",
             "coworkerSummaryOLTP",
             GraphTest.Traversals.class.getCanonicalName(),
-            SideEffectTest.Traversals.class.getCanonicalName(),
             SubgraphTest.Traversals.class.getCanonicalName(),
             ProfileTest.Traversals.class.getCanonicalName(),
             PartitionStrategyProcessTest.class.getCanonicalName(),

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/6c8517d9/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/JavaTranslator.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/JavaTranslator.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/JavaTranslator.java
index ed09830..bf2ca42 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/JavaTranslator.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/JavaTranslator.java
@@ -121,7 +121,9 @@ public final class JavaTranslator<S extends TraversalSource, T extends Traversal
                 throw new IllegalStateException(e.getMessage(), e);
             }
         } else if (object instanceof Map) {
-            final Map<Object, Object> map = new LinkedHashMap<>(((Map) object).size());
+            final Map<Object, Object> map = object instanceof LinkedHashMap ?
+                    new LinkedHashMap<>(((Map) object).size()) :
+                    new HashMap<>(((Map) object).size());
             for (final Map.Entry<?, ?> entry : ((Map<?, ?>) object).entrySet()) {
                 map.put(translateObject(entry.getKey()), translateObject(entry.getValue()));
             }

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/6c8517d9/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/actors/traversal/TraversalActorProgram.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/actors/traversal/TraversalActorProgram.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/actors/traversal/TraversalActorProgram.java
index b85bcb0..542677e 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/actors/traversal/TraversalActorProgram.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/actors/traversal/TraversalActorProgram.java
@@ -49,7 +49,6 @@ import org.apache.tinkerpop.gremlin.structure.Partition;
 import org.apache.tinkerpop.gremlin.structure.util.Attachable;
 import org.apache.tinkerpop.gremlin.structure.util.Host;
 
-import java.util.AbstractMap;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.HashSet;
@@ -163,7 +162,7 @@ public final class TraversalActorProgram<R> implements ActorProgram {
             if (object instanceof Map) {
                 final Map map = (Map) object;
                 for (final Object key : map.keySet()) {
-                    map.put(TraversalActorProgram.attach(key, host), TraversalActorProgram.attach(map.get(key), host));
+                    map.put(key, TraversalActorProgram.attach(map.get(key), host));
                 }
                 return (A) map;
             } else if (object instanceof List) {

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/6c8517d9/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/actors/traversal/TraversalMasterProgram.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/actors/traversal/TraversalMasterProgram.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/actors/traversal/TraversalMasterProgram.java
index 48b5138..5fe17ae 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/actors/traversal/TraversalMasterProgram.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/actors/traversal/TraversalMasterProgram.java
@@ -45,6 +45,7 @@ import org.apache.tinkerpop.gremlin.process.traversal.traverser.util.TraverserSe
 import org.apache.tinkerpop.gremlin.process.traversal.util.TraversalMatrix;
 import org.apache.tinkerpop.gremlin.structure.Element;
 import org.apache.tinkerpop.gremlin.structure.Partition;
+import org.javatuples.Pair;
 
 import java.util.HashMap;
 import java.util.HashSet;
@@ -80,11 +81,15 @@ final class TraversalMasterProgram implements ActorProgram.Master<Object> {
 
     @Override
     public void setup() {
+        // create termination ring
         this.neighborAddress = this.master.workers().get(0);
+        // create worker lookup table
         for (int i = 0; i < this.master.partitioner().getPartitions().size(); i++) {
             this.partitionToWorkerMap.put(this.master.partitioner().getPartitions().get(i), this.master.workers().get(i));
         }
+        // initiate all workers
         this.broadcast(StartMessage.instance());
+        // first pass of a two pass termination detection
         this.voteToHalt = false;
         this.master.send(this.neighborAddress, Terminate.NO);
     }
@@ -158,7 +163,7 @@ final class TraversalMasterProgram implements ActorProgram.Master<Object> {
 
     @Override
     public void terminate() {
-        this.master.result().setResult(this.results);
+        this.master.result().setResult(Pair.with(this.results, this.traversal.getSideEffects()));
     }
 
     private void broadcast(final Object message) {

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/6c8517d9/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/actors/traversal/step/map/TraversalActorProgramStep.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/actors/traversal/step/map/TraversalActorProgramStep.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/actors/traversal/step/map/TraversalActorProgramStep.java
index d6b8858..41d8200 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/actors/traversal/step/map/TraversalActorProgramStep.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/actors/traversal/step/map/TraversalActorProgramStep.java
@@ -24,11 +24,13 @@ import org.apache.tinkerpop.gremlin.process.actors.ActorProgram;
 import org.apache.tinkerpop.gremlin.process.actors.GraphActors;
 import org.apache.tinkerpop.gremlin.process.actors.traversal.TraversalActorProgram;
 import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
+import org.apache.tinkerpop.gremlin.process.traversal.TraversalSideEffects;
 import org.apache.tinkerpop.gremlin.process.traversal.Traverser;
 import org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.util.EmptyStep;
 import org.apache.tinkerpop.gremlin.process.traversal.traverser.util.TraverserSet;
 import org.apache.tinkerpop.gremlin.structure.util.StringFactory;
+import org.javatuples.Pair;
 
 import java.util.NoSuchElementException;
 
@@ -54,9 +56,11 @@ public final class TraversalActorProgramStep<S, E> extends AbstractStep<E, E> {
         if (this.first) {
             this.first = false;
             try {
-                final GraphActors<TraverserSet<E>> graphActors = GraphActors.open(this.graphActorsConfiguration);
+                final GraphActors<Pair<TraverserSet<E>, TraversalSideEffects>> graphActors = GraphActors.open(this.graphActorsConfiguration);
                 final ActorProgram actorProgram = new TraversalActorProgram<>(this.actorsTraversal);
-                graphActors.program(actorProgram).submit(this.getTraversal().getGraph().get()).get().forEach(this.starts::add);
+                final Pair<TraverserSet<E>, TraversalSideEffects> pair = graphActors.program(actorProgram).submit(this.getTraversal().getGraph().get()).get();
+                pair.getValue0().forEach(this.starts::add);
+                this.getTraversal().setSideEffects(pair.getValue1());
             } catch (final Exception e) {
                 throw new IllegalStateException(e.getMessage(), e);
             }

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/6c8517d9/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Bytecode.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Bytecode.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Bytecode.java
index a3ba9f0..a7f0935 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Bytecode.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/Bytecode.java
@@ -277,7 +277,9 @@ public final class Bytecode implements Cloneable, Serializable {
         if (argument instanceof Traversal)
             return ((Traversal) argument).asAdmin().getBytecode();
         else if (argument instanceof Map) {
-            final Map<Object, Object> map = new LinkedHashMap<>(((Map) argument).size());
+            final Map<Object, Object> map = argument instanceof LinkedHashMap ?
+                    new LinkedHashMap<>(((Map) argument).size()) :
+                    new HashMap<>(((Map) argument).size());
             for (final Map.Entry<?, ?> entry : ((Map<?, ?>) argument).entrySet()) {
                 map.put(convertArgument(entry.getKey(), true), convertArgument(entry.getValue(), true));
             }