every ActorSystem needs a unique system name. Thus, every GraphActors submit() needs it. Added UUID creation.
Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/46a6a3b8 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/46a6a3b8 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/46a6a3b8 Branch: refs/heads/TINKERPOP-1564 Commit: 46a6a3b89ea4c447ce9c2f5c75a950d6228e0008 Parents: 36e47f3 Author: Marko A. Rodriguez <okramma...@gmail.com> Authored: Fri Jan 13 11:47:26 2017 -0700 Committer: Marko A. Rodriguez <okramma...@gmail.com> Committed: Thu Jan 19 13:01:41 2017 -0700 ---------------------------------------------------------------------- .../conf/akka-tinkerpop-modern.properties | 2 -- .../akka/process/actors/AkkaConfigFactory.java | 18 ++++++++---------- .../akka/process/actors/AkkaGraphActors.java | 7 +++++-- .../gremlin/akka/process/actors/Constants.java | 1 + .../gremlin/akka/process/actors/MasterActor.java | 2 +- .../akka/process/actors/AkkaActorsProvider.java | 2 -- 6 files changed, 15 insertions(+), 17 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/46a6a3b8/akka-gremlin/conf/akka-tinkerpop-modern.properties ---------------------------------------------------------------------- diff --git a/akka-gremlin/conf/akka-tinkerpop-modern.properties b/akka-gremlin/conf/akka-tinkerpop-modern.properties index 47caf49..195449b 100644 --- a/akka-gremlin/conf/akka-tinkerpop-modern.properties +++ b/akka-gremlin/conf/akka-tinkerpop-modern.properties @@ -28,6 +28,4 @@ akka.actor.provider=remote akka.remote.enabled-transports=akka.remote.netty.tcp akka.remote.netty.tcp.hostname=127.0.0.1 akka.remote.netty.tcp.port=2552 -akka.cluster.seed-nodes=akka.tcp://tinkerpop@127.0.0.1:2552 -akka.cluster.auto-down-unreachable-after=10s akka.log-dead-letters-during-shutdown=false \ No newline at end of file http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/46a6a3b8/akka-gremlin/src/main/java/org/apache/tinkerpop/gremlin/akka/process/actors/AkkaConfigFactory.java ---------------------------------------------------------------------- diff --git a/akka-gremlin/src/main/java/org/apache/tinkerpop/gremlin/akka/process/actors/AkkaConfigFactory.java b/akka-gremlin/src/main/java/org/apache/tinkerpop/gremlin/akka/process/actors/AkkaConfigFactory.java index 6364de3..d1bab75 100644 --- a/akka-gremlin/src/main/java/org/apache/tinkerpop/gremlin/akka/process/actors/AkkaConfigFactory.java +++ b/akka-gremlin/src/main/java/org/apache/tinkerpop/gremlin/akka/process/actors/AkkaConfigFactory.java @@ -29,14 +29,10 @@ import org.apache.commons.configuration.Configuration; import org.apache.tinkerpop.gremlin.akka.process.actors.io.gryo.GryoSerializer; import org.apache.tinkerpop.gremlin.process.actors.ActorProgram; import org.apache.tinkerpop.gremlin.structure.Partition; -import org.apache.tinkerpop.gremlin.util.ClassUtil; import java.util.Collection; import java.util.Collections; -import java.util.HashMap; import java.util.Iterator; -import java.util.List; -import java.util.Map; import java.util.stream.Collectors; /** @@ -80,13 +76,15 @@ final class AkkaConfigFactory { return value; } - static Address getMasterActorDeployment(final Config config) { - final List<String> seedNodes = config.getStringList(Constants.AKKA_CLUSTER_SEED_NODES); - return AddressFromURIString.parse(seedNodes.get(0)); + static Address getMasterActorDeployment(final Configuration configuration) { + final String hostName = configuration.getString(Constants.AKKA_REMOTE_NETTY_TCP_HOSTNAME); + final String port = configuration.getProperty(Constants.AKKA_REMOTE_NETTY_TCP_PORT).toString(); + return AddressFromURIString.parse("akka.tcp://" + configuration.getString(Constants.GREMLIN_AKKA_SYSTEM_NAME) + "@" + hostName + ":" + port); } - static Address getWorkerActorDeployment(final Partition partition) { - final String location = partition.location().isSiteLocalAddress() ? "127.0.0.1" : partition.location().getHostAddress().toString(); - return AddressFromURIString.parse("akka.tcp://tinkerpop@" + location + ":2552"); + static Address getWorkerActorDeployment(final Configuration configuration, final Partition partition) { + final String hostName = partition.location().isSiteLocalAddress() ? "127.0.0.1" : partition.location().getHostAddress().toString(); + final String port = configuration.getProperty(Constants.AKKA_REMOTE_NETTY_TCP_PORT).toString(); + return AddressFromURIString.parse("akka.tcp://" + configuration.getString(Constants.GREMLIN_AKKA_SYSTEM_NAME) + "@" + hostName + ":" + port); } } http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/46a6a3b8/akka-gremlin/src/main/java/org/apache/tinkerpop/gremlin/akka/process/actors/AkkaGraphActors.java ---------------------------------------------------------------------- diff --git a/akka-gremlin/src/main/java/org/apache/tinkerpop/gremlin/akka/process/actors/AkkaGraphActors.java b/akka-gremlin/src/main/java/org/apache/tinkerpop/gremlin/akka/process/actors/AkkaGraphActors.java index 04bd071..61c4439 100644 --- a/akka-gremlin/src/main/java/org/apache/tinkerpop/gremlin/akka/process/actors/AkkaGraphActors.java +++ b/akka-gremlin/src/main/java/org/apache/tinkerpop/gremlin/akka/process/actors/AkkaGraphActors.java @@ -36,6 +36,7 @@ import org.apache.tinkerpop.gremlin.structure.Graph; import org.apache.tinkerpop.gremlin.structure.util.StringFactory; import org.apache.tinkerpop.gremlin.util.config.SerializableConfiguration; +import java.util.UUID; import java.util.concurrent.CompletableFuture; import java.util.concurrent.Future; @@ -84,13 +85,15 @@ public final class AkkaGraphActors<R> implements GraphActors<R> { throw new IllegalStateException("Can not execute twice"); this.executed = true; /////// + final String systemName = "tinkerpop-" + UUID.randomUUID(); final Configuration finalConfiguration = new SerializableConfiguration(graph.configuration()); ConfigurationUtils.copy(this.configuration, finalConfiguration); + finalConfiguration.setProperty(Constants.GREMLIN_AKKA_SYSTEM_NAME, systemName); final Config config = AkkaConfigFactory.generateAkkaConfig(this.actorProgram, finalConfiguration); - final ActorSystem system = ActorSystem.create("tinkerpop", config); + final ActorSystem system = ActorSystem.create(systemName, config); final ActorsResult<R> result = new DefaultActorsResult<>(); /////// - final akka.actor.Address masterAddress = AkkaConfigFactory.getMasterActorDeployment(config); + final akka.actor.Address masterAddress = AkkaConfigFactory.getMasterActorDeployment(finalConfiguration); system.actorOf(Props.create(MasterActor.class, finalConfiguration, result).withDeploy(new Deploy(new RemoteScope(masterAddress))), "master"); return CompletableFuture.supplyAsync(() -> { http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/46a6a3b8/akka-gremlin/src/main/java/org/apache/tinkerpop/gremlin/akka/process/actors/Constants.java ---------------------------------------------------------------------- diff --git a/akka-gremlin/src/main/java/org/apache/tinkerpop/gremlin/akka/process/actors/Constants.java b/akka-gremlin/src/main/java/org/apache/tinkerpop/gremlin/akka/process/actors/Constants.java index dacdd2d..ed4f383 100644 --- a/akka-gremlin/src/main/java/org/apache/tinkerpop/gremlin/akka/process/actors/Constants.java +++ b/akka-gremlin/src/main/java/org/apache/tinkerpop/gremlin/akka/process/actors/Constants.java @@ -37,5 +37,6 @@ public final class Constants { public static final String AKKA_REMOTE_NETTY_TCP_PORT = "akka.remote.netty.tcp.port"; public static final String AKKA_CLUSTER_SEED_NODES = "akka.cluster.seed-nodes"; public static final String AKKA_CLUSTER_AUTO_DOWN_UNREACHABLE_AFTER = "akka.cluster.auto-down-unreachable-after"; + public static final String GREMLIN_AKKA_SYSTEM_NAME = "gremlin.akka.system-name"; } http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/46a6a3b8/akka-gremlin/src/main/java/org/apache/tinkerpop/gremlin/akka/process/actors/MasterActor.java ---------------------------------------------------------------------- diff --git a/akka-gremlin/src/main/java/org/apache/tinkerpop/gremlin/akka/process/actors/MasterActor.java b/akka-gremlin/src/main/java/org/apache/tinkerpop/gremlin/akka/process/actors/MasterActor.java index 4fbfd94..e54146b 100644 --- a/akka-gremlin/src/main/java/org/apache/tinkerpop/gremlin/akka/process/actors/MasterActor.java +++ b/akka-gremlin/src/main/java/org/apache/tinkerpop/gremlin/akka/process/actors/MasterActor.java @@ -75,7 +75,7 @@ public final class MasterActor extends AbstractActor implements RequiresMessageQ this.workers.add(workerAddress); context().actorOf( Props.create(WorkerActor.class, configuration, partition.id(), this.master) - .withDeploy(new Deploy(new RemoteScope(AkkaConfigFactory.getWorkerActorDeployment(partition)))), + .withDeploy(new Deploy(new RemoteScope(AkkaConfigFactory.getWorkerActorDeployment(configuration, partition)))), workerAddress.getId()); } this.masterProgram = actorProgram.createMasterProgram(this); http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/46a6a3b8/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 8fd2239..94d7373 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 @@ -144,8 +144,6 @@ public class AkkaActorsProvider extends AbstractGraphProvider { put(Constants.AKKA_REMOTE_ENABLED_TRANSPORTS, Collections.singletonList("akka.remote.netty.tcp")); put(Constants.AKKA_REMOTE_NETTY_TCP_HOSTNAME, "127.0.0.1"); put(Constants.AKKA_REMOTE_NETTY_TCP_PORT, 2552); - put(Constants.AKKA_CLUSTER_SEED_NODES, Collections.singletonList("akka.tcp://tinkerpop@127.0.0.1:2552")); - put(Constants.AKKA_CLUSTER_AUTO_DOWN_UNREACHABLE_AFTER, "10s"); }}; }