From 906cbed5b431c8df1325441907c1602241f3f6ef Mon Sep 17 00:00:00 2001 From: Jon Bratseth Date: Wed, 1 Jul 2020 08:47:30 +0200 Subject: Formatting changes only# --- .../com/yahoo/search/dispatch/SearchInvoker.java | 9 ++-- .../search/dispatch/rpc/ProtobufSerialization.java | 3 +- .../search/dispatch/rpc/RpcSearchInvoker.java | 49 ++++++++++++---------- .../search/dispatch/rpc/RpcSearchInvokerTest.java | 8 ++-- 4 files changed, 36 insertions(+), 33 deletions(-) (limited to 'container-search') diff --git a/container-search/src/main/java/com/yahoo/search/dispatch/SearchInvoker.java b/container-search/src/main/java/com/yahoo/search/dispatch/SearchInvoker.java index 9fd6ae9063c..b33e91189cc 100644 --- a/container-search/src/main/java/com/yahoo/search/dispatch/SearchInvoker.java +++ b/container-search/src/main/java/com/yahoo/search/dispatch/SearchInvoker.java @@ -41,11 +41,10 @@ public abstract class SearchInvoker extends CloseableInvoker { /** * - * @param query The query to send - * @param context A context object that can be used to pass context among different - * invokers. Fx for reuse of preserialized data. - * @return An object that can be passed to the next invocation of sendSearchRequest - * @throws IOException + * @param query the query to send + * @param context a context object that can be used to pass context among different + * invokers, e.g for reuse of preserialized data. + * @return an object that can be passed to the next invocation of sendSearchRequest */ protected abstract Object sendSearchRequest(Query query, Object context) throws IOException; diff --git a/container-search/src/main/java/com/yahoo/search/dispatch/rpc/ProtobufSerialization.java b/container-search/src/main/java/com/yahoo/search/dispatch/rpc/ProtobufSerialization.java index d13f04ea85e..51290c245ac 100644 --- a/container-search/src/main/java/com/yahoo/search/dispatch/rpc/ProtobufSerialization.java +++ b/container-search/src/main/java/com/yahoo/search/dispatch/rpc/ProtobufSerialization.java @@ -91,8 +91,7 @@ public class ProtobufSerialization { return traceLevel; } - private static void - mergeToSearchRequestFromRanking(Ranking ranking, SearchProtocol.SearchRequest.Builder builder) { + private static void mergeToSearchRequestFromRanking(Ranking ranking, SearchProtocol.SearchRequest.Builder builder) { builder.setRankProfile(ranking.getProfile()); if (ranking.getQueryCache()) { 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 e1e3389eb5a..6ffc809bc45 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 @@ -44,42 +44,35 @@ public class RpcSearchInvoker extends SearchInvoker implements Client.ResponseRe this.maxHits = maxHits; } - static class Context { - final Compressor.Compression compressionResult; - final int payloadLength; - Context(RpcResourcePool resourcePool, Query query, byte [] payload) { - this.payloadLength = payload.length; - compressionResult = resourcePool.compress(query, payload); - } - } - @Override - protected Object sendSearchRequest(Query query, Object context_in) { + protected Object sendSearchRequest(Query query, Object incomingContext) { this.query = query; Client.NodeConnection nodeConnection = resourcePool.getConnection(node.key()); if (nodeConnection == null) { responses.add(Client.ResponseOrError.fromError("Could not send search to unknown node " + node.key())); responseAvailable(); - return context_in; + return incomingContext; } query.trace(false, 5, "Sending search request with jrt/protobuf to node with dist key ", node.key()); - Context context; - if (context_in instanceof Context) { - context = (Context) context_in; - } else { - context = new Context(resourcePool, query, - ProtobufSerialization.serializeSearchRequest(query, - Math.min(query.getHits(), maxHits), - searcher.getServerId())); - } + RpcContext context = getContext(incomingContext); double timeoutSeconds = ((double) query.getTimeLeft() - 3.0) / 1000.0; - nodeConnection.request(RPC_METHOD, context.compressionResult.type(), context.payloadLength, - context.compressionResult.data(), this, timeoutSeconds); + nodeConnection.request(RPC_METHOD, context.compressedPayload.type(), context.payloadLength, + context.compressedPayload.data(), this, timeoutSeconds); return context; } + private RpcContext getContext(Object incomingContext) { + if (incomingContext instanceof RpcContext) + return (RpcContext)incomingContext; + + return new RpcContext(resourcePool, query, + ProtobufSerialization.serializeSearchRequest(query, + Math.min(query.getHits(), maxHits), + searcher.getServerId())); + } + @Override protected InvokerResult getSearchResult(Execution execution) throws IOException { long timeLeftMs = query.getTimeLeft(); @@ -124,4 +117,16 @@ public class RpcSearchInvoker extends SearchInvoker implements Client.ResponseRe return searcher.getName(); } + 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 153e462a410..3b362963c8c 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 @@ -39,9 +39,9 @@ public class RpcSearchInvokerTest { var invoker = new RpcSearchInvoker(mockSearcher(), new Node(7, "seven", 1), mockPool, 1000); Query q = new Query("search/?query=test&hits=10&offset=3"); - RpcSearchInvoker.Context context = (RpcSearchInvoker.Context) invoker.sendSearchRequest(q, null); + RpcSearchInvoker.RpcContext context = (RpcSearchInvoker.RpcContext) invoker.sendSearchRequest(q, null); assertTrue( context.payloadLength == lengthHolder.get()); - assertSame(context.compressionResult.data(), payloadHolder.get()); + assertSame(context.compressedPayload.data(), payloadHolder.get()); var bytes = mockPool.compressor().decompress(payloadHolder.get(), compressionTypeHolder.get(), lengthHolder.get()); var request = SearchProtocol.SearchRequest.newBuilder().mergeFrom(bytes).build(); @@ -51,10 +51,10 @@ public class RpcSearchInvokerTest { assertTrue(request.getQueryTreeBlob().size() > 0); var invoker2 = new RpcSearchInvoker(mockSearcher(), new Node(8, "eight", 1), mockPool, 1000); - RpcSearchInvoker.Context context2 = (RpcSearchInvoker.Context)invoker2.sendSearchRequest(q, context); + RpcSearchInvoker.RpcContext context2 = (RpcSearchInvoker.RpcContext)invoker2.sendSearchRequest(q, context); assertSame(context, context2); assertTrue( context.payloadLength == lengthHolder.get()); - assertSame(context.compressionResult.data(), payloadHolder.get()); + assertSame(context.compressedPayload.data(), payloadHolder.get()); } @Test -- cgit v1.2.3