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/24 18:32:23 UTC
tinkerpop git commit: TraversalActorProgram now support mid-traversal
V(). This means the entire test-suite now passes save those with Mutating
steps (oh, and mid-traversal inject(),
which is easy enough now that I understand mid-traversal V()). This is
Repository: tinkerpop
Updated Branches:
refs/heads/TINKERPOP-1564 8cf050416 -> 9bb808f0a
TraversalActorProgram now support mid-traversal V(). This means the entire test-suite now passes save those with Mutating steps (oh, and mid-traversal inject(), which is easy enough now that I understand mid-traversal V()). This is it. We are 'done.'
Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/9bb808f0
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/9bb808f0
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/9bb808f0
Branch: refs/heads/TINKERPOP-1564
Commit: 9bb808f0ac4bcd0f0ee22706a04d871fb7dad3f0
Parents: 8cf0504
Author: Marko A. Rodriguez <ok...@gmail.com>
Authored: Tue Jan 24 11:32:20 2017 -0700
Committer: Marko A. Rodriguez <ok...@gmail.com>
Committed: Tue Jan 24 11:32:20 2017 -0700
----------------------------------------------------------------------
.../akka/process/actors/AkkaActorsProvider.java | 4 ----
.../actors/traversal/TraversalWorkerProgram.java | 14 +++++++++++++-
2 files changed, 13 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/9bb808f0/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 fde786c..f610a97 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
@@ -24,7 +24,6 @@ import org.apache.tinkerpop.gremlin.akka.process.actors.io.gryo.GryoSerializer;
import org.apache.tinkerpop.gremlin.process.actors.GraphActors;
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.SubgraphTest;
import org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.ElementIdStrategyProcessTest;
@@ -48,14 +47,11 @@ public class AkkaActorsProvider extends AbstractTinkerGraphProvider {
private static final Random RANDOM = new Random();
private static Set<String> SKIP_TESTS = new HashSet<>(Arrays.asList(
- "g_V_hasLabelXpersonX_V_hasLabelXsoftwareX_name",
"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_VX1X_sideEffectXstore_aX_name",
"g_VX1X_out_sideEffectXincr_cX_name",
- "coworkerSummaryOLTP",
- GraphTest.Traversals.class.getCanonicalName(),
SubgraphTest.Traversals.class.getCanonicalName(),
ProfileTest.Traversals.class.getCanonicalName(),
PartitionStrategyProcessTest.class.getCanonicalName(),
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/9bb808f0/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/actors/traversal/TraversalWorkerProgram.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/actors/traversal/TraversalWorkerProgram.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/actors/traversal/TraversalWorkerProgram.java
index f654044..67d8b4a 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/actors/traversal/TraversalWorkerProgram.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/actors/traversal/TraversalWorkerProgram.java
@@ -142,7 +142,9 @@ final class TraversalWorkerProgram implements ActorProgram.Worker<Object> {
//////////////
private void processTraverser(final Traverser.Admin traverser) {
- assert !(traverser.get() instanceof Element) || this.self.partition().contains((Element) traverser.get());
+ assert !(traverser.get() instanceof Element) ||
+ this.self.partition().contains((Element) traverser.get()) ||
+ this.matrix.getStepById(traverser.getStepId()) instanceof GraphStep; // only mid-traversal V()/E() traversers can be non-locally processed
if (traverser.isHalted())
this.sendTraverser(traverser);
else {
@@ -164,10 +166,20 @@ final class TraversalWorkerProgram implements ActorProgram.Worker<Object> {
this.detachTraverser(traverser);
if (traverser.isHalted())
this.self.send(this.self.master(), traverser);
+ else if (this.matrix.getStepById(traverser.getStepId()) instanceof GraphStep)
+ this.broadcast(traverser);
else if (traverser.get() instanceof Element && !this.self.partition().contains((Element) traverser.get()))
this.self.send(this.partitionToWorkerMap.get(this.self.partition().partitioner().find((Element) traverser.get())), traverser);
else
this.self.send(this.self.address(), traverser);
+
+
+ }
+
+ private void broadcast(final Object message) {
+ for (final Address.Worker worker : this.self.workers()) {
+ this.self.send(worker, message);
+ }
}
private final Traverser.Admin detachTraverser(final Traverser.Admin traverser) {