This is an automated email from the ASF dual-hosted git repository.

kenhuuu pushed a commit to branch poc-bulkset-result
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git


The following commit(s) were added to refs/heads/poc-bulkset-result by this 
push:
     new b0cdeb64b1 uniqueSize() to reduce iteration
b0cdeb64b1 is described below

commit b0cdeb64b12a405da66823fb78be7a67a5599395
Author: Ken Hu <[email protected]>
AuthorDate: Sun Jul 28 11:42:06 2024 -0700

    uniqueSize() to reduce iteration
---
 .../tinkerpop/gremlin/server/handler/HttpGremlinEndpointHandler.java  | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git 
a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/HttpGremlinEndpointHandler.java
 
b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/HttpGremlinEndpointHandler.java
index c7557ae70e..9cdc4fb746 100644
--- 
a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/HttpGremlinEndpointHandler.java
+++ 
b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/HttpGremlinEndpointHandler.java
@@ -421,7 +421,7 @@ public class HttpGremlinEndpointHandler extends 
SimpleChannelInboundHandler<Requ
             // this could be placed inside the isWriteable() portion of the 
if-then below but it seems better to
             // allow iteration to continue into a batch if that is possible 
rather than just doing nothing at all
             // while waiting for the client to catch up
-            if (aggregate.size() < resultIterationBatchSize && itty.hasNext()) 
aggregate.add(itty.next());
+            if (aggregate.uniqueSize() < resultIterationBatchSize && 
itty.hasNext()) aggregate.add(itty.next());
 
             // Don't keep executor busy if client has already given up; there 
is no way to catch up if the channel is
             // not active, and hence we should break the loop.
@@ -438,7 +438,7 @@ public class HttpGremlinEndpointHandler extends 
SimpleChannelInboundHandler<Requ
             // already given up on these requests. This leads to these 
executors waiting for the client to consume
             // results till the timeout. checking for isActive() should help 
prevent that.
             if (nettyContext.channel().isActive() && 
nettyContext.channel().isWritable()) {
-                if (aggregate.size() == resultIterationBatchSize || 
!itty.hasNext()) {
+                if (aggregate.uniqueSize() == resultIterationBatchSize || 
!itty.hasNext()) {
                     ByteBuf chunk = null;
                     try {
                         chunk = makeChunk(context, msg, serializer, aggregate, 
itty.hasNext());

Reply via email to