[
https://issues.apache.org/jira/browse/TINKERPOP3-728?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
stephen mallette updated TINKERPOP3-728:
----------------------------------------
Fix Version/s: 3.1.0-incubating
This ended up being low-hanging fruit. Basically serialized TinkerGraph to
bytes via {{writeGraph}} in a custom gryo serializer. That enables Gremlin
Server to ship it back to the Gremlin Console. This is really only useful for
sending around small subgraphs. Like a user subgraphs something out to
TinkerGraph on the server then want to analyze it locally.
Still need to write a few more tests and maybe add a note or two to the docs
somewhere to finish this up.
> Improve Remote Graph Object Treatment in Console
> ------------------------------------------------
>
> Key: TINKERPOP3-728
> URL: https://issues.apache.org/jira/browse/TINKERPOP3-728
> Project: TinkerPop 3
> Issue Type: Improvement
> Components: console
> Affects Versions: 3.0.0-incubating
> Reporter: stephen mallette
> Assignee: stephen mallette
> Priority: Minor
> Fix For: 3.1.0-incubating
>
>
> The current method of moving an entire {{Graph}} from server to console over
> {{:remote}} looks like this:
> {code}
> gremlin> :import org.apache.tinkerpop.gremlin.structure.util.star.*
> ==>groovy.grape.Grape, org.apache.commons.configuration.*, .... ,
> org.apache.tinkerpop.gremlin.structure.util.star.*
> gremlin> :remote connect tinkerpop.server conf/remote-objects.yaml
> ==>Connected - localhost/127.0.0.1:8182
> gremlin> :> g.V().map{StarGraph.of(it.get())} // assume this is the
> "subgraph" - the key is to convert Vertex to StarGraph
> ==>stargraph[starOf:v[1]]
> ==>stargraph[starOf:v[2]]
> ==>stargraph[starOf:v[3]]
> ==>stargraph[starOf:v[4]]
> ==>stargraph[starOf:v[5]]
> ==>stargraph[starOf:v[6]]
> gremlin> graph = TinkerGraph.open()
> ==>tinkergraph[vertices:0 edges:0]
> gremlin> g = graph.traversal()
> ==>graphtraversalsource[tinkergraph[vertices:0 edges:0], standard]
> gremlin>
> result.each{it.get(StarGraph).getStarVertex().edges(OUT).each{e->e.attach(Attachable.Method.getOrCreate(graph))}}
> ==>result{object=stargraph[starOf:v[1]]
> class=org.apache.tinkerpop.gremlin.structure.util.star.StarGraph}
> ==>result{object=stargraph[starOf:v[2]]
> class=org.apache.tinkerpop.gremlin.structure.util.star.StarGraph}
> ==>result{object=stargraph[starOf:v[3]]
> class=org.apache.tinkerpop.gremlin.structure.util.star.StarGraph}
> ==>result{object=stargraph[starOf:v[4]]
> class=org.apache.tinkerpop.gremlin.structure.util.star.StarGraph}
> ==>result{object=stargraph[starOf:v[5]]
> class=org.apache.tinkerpop.gremlin.structure.util.star.StarGraph}
> ==>result{object=stargraph[starOf:v[6]]
> class=org.apache.tinkerpop.gremlin.structure.util.star.StarGraph}
> gremlin> graph
> ==>tinkergraph[vertices:6 edges:6]
> {code}
> Would be nice if this was a bit more streamlined.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)