[ 
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)

Reply via email to