[ 
https://issues.apache.org/jira/browse/TINKERPOP3-732?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14595941#comment-14595941
 ] 

Dylan Millikin commented on TINKERPOP3-732:
-------------------------------------------

Based on 
{code}
{v[1]:{v[4]:{v[3]:{}, v[5]:{}}}
{code}

Here's the TP2 pseudo-code serialization as a reference:
{code}
{
   "1":{
      "_value":{
         "4":{
            "_value":{
               "3":{
                  "_value":{},
                  "_key":{v[3]}              },
               },
               "5":{
                  "_value":{},
                  "_key":{v[5]}
               }
            },
            "_key":{v[4]}
         }
      },
      "_key":{v[1]}
   }
}
{code}

I don't necessarily dislike this. It isn't beautiful but it works.
It also looks quite straightforward to implement.

Unless there's a desire to make tree() responses streamable (not sure how that 
would really work anyways) it should be enough to get us by. It also has the 
advantage of playing nicely with existing code bases that may use tree in TP2. 


> gremlin-server GraphSON serializer issue with tree()
> ----------------------------------------------------
>
>                 Key: TINKERPOP3-732
>                 URL: https://issues.apache.org/jira/browse/TINKERPOP3-732
>             Project: TinkerPop 3
>          Issue Type: Bug
>          Components: io
>            Reporter: Dylan Millikin
>            Assignee: stephen mallette
>
> When using the {{tree()}} step with a GraphSON serializer the server hangs 
> (though I've seen some form of serialization errors in more complex scenarios 
> over titan).
> The following works fine in the console but fails using the graphSON 
> serializer:
> {code:java}
> g.V(1).repeat(out()).until(out().count().is(0)).tree() // fails with .next() 
> as well
> {code}
> The following works without a problem though:
> {code:java}
> g.V(1).repeat(out()).until(out().count().is(0))
> {code}
> Here's the configuration file I use for these tests:
> {code}
> host: localhost
> port: 8182
> threadPoolWorker: 1
> gremlinPool: 8
> scriptEvaluationTimeout: 30000
> serializedResponseTimeout: 30000
> channelizer: org.apache.tinkerpop.gremlin.server.channel.WebSocketChannelizer
> graphs: {
>   graph: conf/tinkergraph-empty.properties
> }
> plugins:
>   - tinkerpop.tinkergraph
> scriptEngines: {
>   gremlin-groovy: {
>     imports: [java.lang.Math],
>     staticImports: [java.lang.Math.PI],
>     scripts: [scripts/generate-classic.groovy]}}
> serializers:
>   - { className: 
> org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV1d0 }
>   - { className: 
> org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV1d0, config: { 
> serializeResultToString: true }}
>   - { className: 
> org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerGremlinV1d0 }
>   - { className: 
> org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerV1d0 }
> processors:
>   - { className: 
> org.apache.tinkerpop.gremlin.server.op.session.SessionOpProcessor, config: { 
> sessionTimeout: 28800000 }}
> metrics: {
>   consoleReporter: {enabled: true, interval: 180000},
>   csvReporter: {enabled: true, interval: 180000, fileName: 
> /tmp/gremlin-server-metrics.csv},
>   jmxReporter: {enabled: true},
>   slf4jReporter: {enabled: true, interval: 180000},
>   gangliaReporter: {enabled: false, interval: 180000, addressingMode: 
> MULTICAST},
>   graphiteReporter: {enabled: false, interval: 180000}
> }
> threadPoolBoss: 1
> maxInitialLineLength: 4096
> maxHeaderSize: 8192
> maxChunkSize: 8192
> maxContentLength: 65536
> maxAccumulationBufferComponents: 1024
> resultIterationBatchSize: 64
> writeBufferHighWaterMark: 32768
> writeBufferHighWaterMark: 65536
> ssl: {
>   enabled: false} 
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to