Cole-Greer opened a new pull request, #3419:
URL: https://github.com/apache/tinkerpop/pull/3419

   ## Summary
   
   Adds streaming HTTP response deserialization to gremlin-driver for 
GraphBinary. Instead of buffering the entire HTTP response body before 
processing, the driver now deserializes results incrementally as data arrives 
from the server.
   
   ## Design
   
   Four new classes in `gremlin-driver`:
   
   - **ByteBufQueueInputStream** — Bridges the Netty event loop and a reader 
thread via a BlockingQueue of ByteBufs. The event loop offers HTTP content 
chunks; the reader thread consumes them through standard InputStream reads.
   - **InputStreamBuffer** — Read-only Buffer implementation backed by an 
InputStream. Allows existing TypeSerializer implementations to work unchanged 
over a streaming response body.
   - **GraphBinaryStreamResponseReader** — Reads the GraphBinary v4 wire format 
one item at a time, pushing each result to the ResultSet as it is deserialized.
   - **HttpStreamingResponseHandler** — Netty handler that replaces 
HttpObjectAggregator + HttpGremlinResponseDecoder in the pipeline for 
GraphBinary responses.
   
   Non-GraphBinary serializers (GraphSON, custom MessageSerializer 
implementations) fall back to the previous aggregating pipeline.
   
   A new cached thread pool (`gremlin-driver-stream-reader`) is added to 
Cluster for the blocking reader threads, bounded by connection pool size.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to