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));
}