\,,,/(o o)-----oOOo-(3)-oOOo-----plugin activated: tinkerpop.serverplugin activated: tinkerpop.utilitiesplugin activated: tinkerpop.tinkergraphgremlin> :install org.apache.tinkerpop akka-gremlin 3.3.0-SNAPSHOT==>Loaded: [org.apache.tinkerpop, akka-gremlin, 3.3.0-SNAPSHOT]gremlin> graph = TinkerFactory.createModern()==>tinkergraph[vertices:6 edges:6]gremlin> graph.partitioner()==>partitioner[globalpartitioner:1]gremlin> partitioner = new HashPartitioner(graph.partitioner(),3) // lets create 3 logical partitions over TinkerGraph==>partitioner[hashpartitioner:3]gremlin> g = graph.traversal().withStrategies(new ActorProgramStrategy(AkkaGraphActors,partitioner)) // in the future withEngine() will be used==>graphtraversalsource[tinkergraph[vertices:6 edges:6], actors]gremlin> g.V().repeat(out()).times(2).values('name')==>lop==>ripplegremlin> g.V().repeat(both()).times(2).groupCount().by(out().in().count()) // beyond the star graph!==>[0:13,3:3,4:7,5:7]gremlin> g.V().match( // distributed pattern matching......1> __.as('a').out('created').as('b'),......2> __.as('b').has('name', 'lop'),......3> __.as('b').in('created').as('c'),......4> __.as('c').has('age', 29)).......5> select('a','c').by('name')==>[a:marko,c:marko]==>[a:josh,c:marko]==>[a:peter,c:marko]gremlin>
I have only one idea: do traversal API users still really have to know whether they use a GraphComputer or GraphActors? In other words, can the withEngine options not just be some illuminating token constants for users that just want to have the traversal() returned (LOCAL, LOCAL_DISTRIBUTED, DISTRIBUTED)? Of course, the more extended API will be useful for a minority of power users that want to optimize an ActorProgram for a specific use case.
--
You received this message because you are subscribed to the Google Groups "Gremlin-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to gremlin-user...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/gremlin-users/98255596-3d17-4b92-a82f-3d219eaffd81%40googlegroups.com.
How will this get deployed? Each database instance (alternatively gremlin-server) shipping a version of akka-actor and akka-cluster?
What does it mean for performance? Here's my understanding... thoughts?1. A sharded graph database: as long as the data is local it'll scale linearly, then it needs some synchronisation (i.e. hand off the traversal to the instance where the data is local again). I.e. there'll be a sweet spot of replication vs. shards for each use case.2. A replicated graph database: should scale linearly for most traversals3. A single machine graph database: should scale linearly for most traversals
--
You received this message because you are subscribed to the Google Groups "Gremlin-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to gremlin-users+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/gremlin-users/D2CDD477-4671-4100-ACBB-D0196E9BEB41%40gmail.com.
> Thus, I don’t think GremlinServer really needs to come into play.Unless i'm missing something, I'm not sure we should say it quite that way - that's a bit more jvm-centric sounding. So as not to be confused, non-jvm GLVs would still require Gremlin Server, right?
On Thu, Dec 15, 2016 at 11:47 AM, Marko Rodriguez <okram...@gmail.com> wrote:Hi,How will this get deployed? Each database instance (alternatively gremlin-server) shipping a version of akka-actor and akka-cluster?This is a good question. As I’m seeing it lately, I think we treat it just like spark-gremlin/. That is, lets assume a multi-machine graph database:1. User has a graph database across 3 nodes in a cluster.2. User has Akka Cluster setup on those 3 nodes. (like they would have SparkServer or Hadoop).3. akka-gremlin/ “jobs” have a configuration with information about the Akka cluster and the graph database partitions.Thus, I don’t think GremlinServer really needs to come into play. However, I sort of think that down the line, GremlinServer should support the spawning of “services.” For instance, it would be great if GremlinServer, when deployed, it could spawn a SparkServer cluster or an Akka Cluster… This removes the headache for users having to install and configure stuff. It would be great if GremlinServer was like a Docker or something.bin/gremlin-server.sh —i akka.gremlin.plugin —c akka.propertiesDunno. Stephen would have more to say.What does it mean for performance? Here's my understanding... thoughts?1. A sharded graph database: as long as the data is local it'll scale linearly, then it needs some synchronisation (i.e. hand off the traversal to the instance where the data is local again). I.e. there'll be a sweet spot of replication vs. shards for each use case.2. A replicated graph database: should scale linearly for most traversals3. A single machine graph database: should scale linearly for most traversalsSo there will be traverser migration when a traverser no longer references data in its current partition. That is a message pass. You don’t want just full replication because then you aren’t load balancing your traversals across machines. Even if you have a replicated graph database, you will want to create logical partitions so that traversers will be forced to move between machines. When its worth doing that or when you should just use standard iterator Gremlin execution is a fine line… how much data will your traversal touch?Marko.--
You received this message because you are subscribed to the Google Groups "Gremlin-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to gremlin-users+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/gremlin-users/D2CDD477-4671-4100-ACBB-D0196E9BEB41%40gmail.com.--
You received this message because you are subscribed to the Google Groups "Gremlin-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to gremlin-user...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/gremlin-users/CAA-H43-j2sNSEqYkc9pgkZt8HVoOL8FWZs%3DLtkm_PahrJK75Qg%40mail.gmail.com.
Hi,
> Thus, I don’t think GremlinServer really needs to come into play.Unless i'm missing something, I'm not sure we should say it quite that way - that's a bit more jvm-centric sounding. So as not to be confused, non-jvm GLVs would still require Gremlin Server, right?I think it gets back to “anything that supports RemoteConnection” to accept the traversal (RemoteStrategy) and then "anything that implements GraphActors” to execute the traversal (ActorProgramStrategy).Marko.
On Thu, Dec 15, 2016 at 11:47 AM, Marko Rodriguez <okram...@gmail.com> wrote:
Hi,How will this get deployed? Each database instance (alternatively gremlin-server) shipping a version of akka-actor and akka-cluster?This is a good question. As I’m seeing it lately, I think we treat it just like spark-gremlin/. That is, lets assume a multi-machine graph database:1. User has a graph database across 3 nodes in a cluster.2. User has Akka Cluster setup on those 3 nodes. (like they would have SparkServer or Hadoop).3. akka-gremlin/ “jobs” have a configuration with information about the Akka cluster and the graph database partitions.Thus, I don’t think GremlinServer really needs to come into play. However, I sort of think that down the line, GremlinServer should support the spawning of “services.” For instance, it would be great if GremlinServer, when deployed, it could spawn a SparkServer cluster or an Akka Cluster… This removes the headache for users having to install and configure stuff. It would be great if GremlinServer was like a Docker or something.bin/gremlin-server.sh —i akka.gremlin.plugin —c akka.propertiesDunno. Stephen would have more to say.What does it mean for performance? Here's my understanding... thoughts?1. A sharded graph database: as long as the data is local it'll scale linearly, then it needs some synchronisation (i.e. hand off the traversal to the instance where the data is local again). I.e. there'll be a sweet spot of replication vs. shards for each use case.2. A replicated graph database: should scale linearly for most traversals3. A single machine graph database: should scale linearly for most traversalsSo there will be traverser migration when a traverser no longer references data in its current partition. That is a message pass. You don’t want just full replication because then you aren’t load balancing your traversals across machines. Even if you have a replicated graph database, you will want to create logical partitions so that traversers will be forced to move between machines. When its worth doing that or when you should just use standard iterator Gremlin execution is a fine line… how much data will your traversal touch?Marko.
--
You received this message because you are subscribed to the Google Groups "Gremlin-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to gremlin-user...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/gremlin-users/D2CDD477-4671-4100-ACBB-D0196E9BEB41%40gmail.com.
I was wondering where things left off for this work. Mostly because distributed Gremlin OLTP sounded promising but also because we use both DSE Graph and Akka at my work.
I noticed in Git that it hasn't been worked on lately. Did you hit a wall with this approach? If so, can anyone share what issues you faced? Do you think there might be a new effort for distributed OLTP or did the OLAP engine improve to the point where distributed OLTP isn't necessary?
Legal Disclaimer: The information contained in this message may be privileged and confidential. It is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. If you have received this message in error, please immediately notify the sender and delete or destroy any copy of this message
--
You received this message because you are subscribed to the Google Groups "Gremlin-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to gremlin-user...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/gremlin-users/e4a0f503-1945-49f4-8df5-d13d532144c3%40googlegroups.com.