From 071a009c0cc00b8906790105e91ba5da817f983f Mon Sep 17 00:00:00 2001 From: Jon Bratseth Date: Wed, 1 Jul 2020 08:50:59 +0200 Subject: Use existing uncompressed length --- .../src/main/java/com/yahoo/search/dispatch/rpc/Client.java | 2 +- .../java/com/yahoo/search/dispatch/rpc/RpcSearchInvoker.java | 10 ++++++---- .../com/yahoo/search/dispatch/rpc/RpcSearchInvokerTest.java | 4 ++-- 3 files changed, 9 insertions(+), 7 deletions(-) (limited to 'container-search') diff --git a/container-search/src/main/java/com/yahoo/search/dispatch/rpc/Client.java b/container-search/src/main/java/com/yahoo/search/dispatch/rpc/Client.java index bc0a38617ee..f4536a7aa4e 100644 --- a/container-search/src/main/java/com/yahoo/search/dispatch/rpc/Client.java +++ b/container-search/src/main/java/com/yahoo/search/dispatch/rpc/Client.java @@ -87,7 +87,7 @@ interface Client { RpcFillInvoker.GetDocsumsResponseReceiver responseReceiver, double timeoutSeconds); void request(String rpcMethod, CompressionType compression, int uncompressedLength, byte[] compressedPayload, - ResponseReceiver responseReceiver, double timeoutSeconds); + ResponseReceiver responseReceiver, double timeoutSeconds); /** Closes this connection */ void close(); diff --git a/container-search/src/main/java/com/yahoo/search/dispatch/rpc/RpcSearchInvoker.java b/container-search/src/main/java/com/yahoo/search/dispatch/rpc/RpcSearchInvoker.java index 6ffc809bc45..4c0b77207d5 100644 --- a/container-search/src/main/java/com/yahoo/search/dispatch/rpc/RpcSearchInvoker.java +++ b/container-search/src/main/java/com/yahoo/search/dispatch/rpc/RpcSearchInvoker.java @@ -58,8 +58,12 @@ public class RpcSearchInvoker extends SearchInvoker implements Client.ResponseRe RpcContext context = getContext(incomingContext); double timeoutSeconds = ((double) query.getTimeLeft() - 3.0) / 1000.0; - nodeConnection.request(RPC_METHOD, context.compressedPayload.type(), context.payloadLength, - context.compressedPayload.data(), this, timeoutSeconds); + nodeConnection.request(RPC_METHOD, + context.compressedPayload.type(), + context.compressedPayload.uncompressedSize(), + context.compressedPayload.data(), + this, + timeoutSeconds); return context; } @@ -120,10 +124,8 @@ public class RpcSearchInvoker extends SearchInvoker implements Client.ResponseRe static class RpcContext { final Compressor.Compression compressedPayload; - final int payloadLength; RpcContext(RpcResourcePool resourcePool, Query query, byte[] payload) { - this.payloadLength = payload.length; compressedPayload = resourcePool.compress(query, payload); } diff --git a/container-search/src/test/java/com/yahoo/search/dispatch/rpc/RpcSearchInvokerTest.java b/container-search/src/test/java/com/yahoo/search/dispatch/rpc/RpcSearchInvokerTest.java index 3b362963c8c..c421e9523ed 100644 --- a/container-search/src/test/java/com/yahoo/search/dispatch/rpc/RpcSearchInvokerTest.java +++ b/container-search/src/test/java/com/yahoo/search/dispatch/rpc/RpcSearchInvokerTest.java @@ -40,7 +40,7 @@ public class RpcSearchInvokerTest { Query q = new Query("search/?query=test&hits=10&offset=3"); RpcSearchInvoker.RpcContext context = (RpcSearchInvoker.RpcContext) invoker.sendSearchRequest(q, null); - assertTrue( context.payloadLength == lengthHolder.get()); + assertEquals(lengthHolder.get(), context.compressedPayload.uncompressedSize()); assertSame(context.compressedPayload.data(), payloadHolder.get()); var bytes = mockPool.compressor().decompress(payloadHolder.get(), compressionTypeHolder.get(), lengthHolder.get()); @@ -53,7 +53,7 @@ public class RpcSearchInvokerTest { var invoker2 = new RpcSearchInvoker(mockSearcher(), new Node(8, "eight", 1), mockPool, 1000); RpcSearchInvoker.RpcContext context2 = (RpcSearchInvoker.RpcContext)invoker2.sendSearchRequest(q, context); assertSame(context, context2); - assertTrue( context.payloadLength == lengthHolder.get()); + assertEquals(lengthHolder.get(), context.compressedPayload.uncompressedSize()); assertSame(context.compressedPayload.data(), payloadHolder.get()); } -- cgit v1.2.3