diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2019-03-15 18:14:17 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-03-15 18:14:17 +0100 |
commit | 7f56c30703f5319f5368653f6313a8f12f07b3cb (patch) | |
tree | 394c9717eee127c407e3d3222169bab4a420228e /container-search/src/main/java/com/yahoo/search/dispatch/rpc/RpcInvokerFactory.java | |
parent | 156743b84071f04114bc4479a3bcc3ca10b2f7e5 (diff) |
Revert "Protobuf over jrt support in search"
Diffstat (limited to 'container-search/src/main/java/com/yahoo/search/dispatch/rpc/RpcInvokerFactory.java')
-rw-r--r-- | container-search/src/main/java/com/yahoo/search/dispatch/rpc/RpcInvokerFactory.java | 98 |
1 files changed, 0 insertions, 98 deletions
diff --git a/container-search/src/main/java/com/yahoo/search/dispatch/rpc/RpcInvokerFactory.java b/container-search/src/main/java/com/yahoo/search/dispatch/rpc/RpcInvokerFactory.java deleted file mode 100644 index c8019278710..00000000000 --- a/container-search/src/main/java/com/yahoo/search/dispatch/rpc/RpcInvokerFactory.java +++ /dev/null @@ -1,98 +0,0 @@ -// Copyright 2019 Oath Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -package com.yahoo.search.dispatch.rpc; - -import com.yahoo.prelude.fastsearch.DocumentDatabase; -import com.yahoo.prelude.fastsearch.VespaBackEndSearcher; -import com.yahoo.processing.request.CompoundName; -import com.yahoo.search.Query; -import com.yahoo.search.Result; -import com.yahoo.search.dispatch.FillInvoker; -import com.yahoo.search.dispatch.InterleavedSearchInvoker; -import com.yahoo.search.dispatch.InvokerFactory; -import com.yahoo.search.dispatch.SearchInvoker; -import com.yahoo.search.dispatch.searchcluster.Node; -import com.yahoo.search.dispatch.searchcluster.SearchCluster; - -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import java.util.Optional; -import java.util.OptionalInt; -import java.util.Set; - -/** - * @author ollivir - */ -public class RpcInvokerFactory extends InvokerFactory { - /** Unless turned off this will fill summaries by dispatching directly to search nodes over RPC when possible */ - private final static CompoundName dispatchSummaries = new CompoundName("dispatch.summaries"); - - private final RpcResourcePool rpcResourcePool; - private final SearchCluster searchCluster; - - public RpcInvokerFactory(RpcResourcePool rpcResourcePool, SearchCluster searchCluster) { - this.rpcResourcePool = rpcResourcePool; - this.searchCluster = searchCluster; - } - - @Override - public Optional<SearchInvoker> createSearchInvoker(VespaBackEndSearcher searcher, Query query, OptionalInt groupId, List<Node> nodes, - boolean acceptIncompleteCoverage) { - List<SearchInvoker> invokers = new ArrayList<>(nodes.size()); - Set<Integer> failed = null; - for (Node node : nodes) { - if (node.isWorking()) { - invokers.add(new RpcSearchInvoker(searcher, node, rpcResourcePool)); - } else { - if (failed == null) { - failed = new HashSet<>(); - } - failed.add(node.key()); - } - } - - if (failed != null) { - List<Node> success = new ArrayList<>(nodes.size() - failed.size()); - for (Node node : nodes) { - if (!failed.contains(node.key())) { - success.add(node); - } - } - if (!searchCluster.isPartialGroupCoverageSufficient(groupId, success)) { - if (acceptIncompleteCoverage) { - invokers.add(createCoverageErrorInvoker(nodes, failed)); - } else { - return Optional.empty(); - } - } - } - - if (invokers.size() == 1) { - return Optional.of(invokers.get(0)); - } else { - return Optional.of(new InterleavedSearchInvoker(invokers, searcher, searchCluster)); - } - } - - @Override - public Optional<FillInvoker> createFillInvoker(VespaBackEndSearcher searcher, Result result) { - Query query = result.getQuery(); - if (query.properties().getBoolean(dispatchSummaries, true) - && ! searcher.summaryNeedsQuery(query) - && query.getRanking().getLocation() == null) - { - return Optional.of(new RpcFillInvoker(rpcResourcePool, searcher.getDocumentDatabase(query))); - } else { - return Optional.empty(); - } - } - - // for testing - public FillInvoker createFillInvoker(DocumentDatabase documentDb) { - return new RpcFillInvoker(rpcResourcePool, documentDb); - } - - public void release() { - rpcResourcePool.release(); - } -} |