diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2022-09-14 17:21:00 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-09-14 17:21:00 +0200 |
commit | d0abedf6f36b649f4d2fc58579ae5cd2944447d8 (patch) | |
tree | 0de88794eba812918ac7414295d3918534f0f268 | |
parent | b5d827b9734b7c173123fff6e8d77b91b2e883dd (diff) | |
parent | 623d8607886bc3c993908372b6f5dc43f25a903b (diff) |
Merge pull request #24053 from vespa-engine/balder/clarify-semantics
Clarify semantics by better naming and correct code visibility
5 files changed, 17 insertions, 13 deletions
diff --git a/container-search/src/main/java/com/yahoo/search/dispatch/AdaptiveTimeoutHandler.java b/container-search/src/main/java/com/yahoo/search/dispatch/AdaptiveTimeoutHandler.java index e725a152f09..fbc179a10fa 100644 --- a/container-search/src/main/java/com/yahoo/search/dispatch/AdaptiveTimeoutHandler.java +++ b/container-search/src/main/java/com/yahoo/search/dispatch/AdaptiveTimeoutHandler.java @@ -35,7 +35,7 @@ class AdaptiveTimeoutHandler implements TimeoutHandler { } @Override - public long nextTimeout(int answeredNodes) { + public long nextTimeoutMS(int answeredNodes) { if (askedNodes == answeredNodes) return query.getTimeLeft(); // All nodes have responded - done if (answeredNodes < minimumResponses) return query.getTimeLeft(); // Minimum responses have not been received yet diff --git a/container-search/src/main/java/com/yahoo/search/dispatch/CoverageAggregator.java b/container-search/src/main/java/com/yahoo/search/dispatch/CoverageAggregator.java index 6d4b321d861..877412d2e9b 100644 --- a/container-search/src/main/java/com/yahoo/search/dispatch/CoverageAggregator.java +++ b/container-search/src/main/java/com/yahoo/search/dispatch/CoverageAggregator.java @@ -45,13 +45,13 @@ public class CoverageAggregator { public int getAskedNodes() { return askedNodes; } - public int getAnswerdNodes() { + public int getAnsweredNodes() { return answeredNodes; } public boolean hasNoAnswers() { return answeredNodes == 0; } public void setTimedOut() { timedOut = true; } public void setFailedNodes(int failedNodes) { - this.failedNodes += failedNodes; + this.failedNodes = failedNodes; } public Coverage createCoverage(TimeoutHandler timeoutHandler) { @@ -68,7 +68,7 @@ public class CoverageAggregator { coverage.setDegradedReason(degradedReason); return coverage; } - public CoverageAggregator adjustDegradedCoverage(int searchableCopies, TimeoutHandler timeoutHandler) { + public CoverageAggregator adjustedDegradedCoverage(int searchableCopies, TimeoutHandler timeoutHandler) { int askedAndFailed = askedNodes + failedNodes; if (askedAndFailed == answeredNodesParticipated) { return this; diff --git a/container-search/src/main/java/com/yahoo/search/dispatch/InterleavedSearchInvoker.java b/container-search/src/main/java/com/yahoo/search/dispatch/InterleavedSearchInvoker.java index 5dace0bbff8..dcf9b56aa33 100644 --- a/container-search/src/main/java/com/yahoo/search/dispatch/InterleavedSearchInvoker.java +++ b/container-search/src/main/java/com/yahoo/search/dispatch/InterleavedSearchInvoker.java @@ -45,7 +45,7 @@ public class InterleavedSearchInvoker extends SearchInvoker implements ResponseM private final CoverageAggregator coverageAggregator; private Query query; - TimeoutHandler timeoutHandler; + private TimeoutHandler timeoutHandler; public InterleavedSearchInvoker(Timer timer, Collection<SearchInvoker> invokers, SearchCluster searchCluster, Group group, @@ -61,7 +61,7 @@ public class InterleavedSearchInvoker extends SearchInvoker implements ResponseM coverageAggregator = new CoverageAggregator(invokers.size()); } - TimeoutHandler create(DispatchConfig config, int askedNodes, Query query) { + private TimeoutHandler createTimeoutHandler(DispatchConfig config, int askedNodes, Query query) { return (config.minSearchCoverage() < 100.0D) ? new AdaptiveTimeoutHandler(timer, config, askedNodes, query) : new SimpleTimeoutHandler(query); @@ -94,7 +94,7 @@ public class InterleavedSearchInvoker extends SearchInvoker implements ResponseM for (SearchInvoker invoker : invokers) { context = invoker.sendSearchRequest(query, context); } - timeoutHandler = create(searchCluster.dispatchConfig(), invokers.size(), query); + timeoutHandler = createTimeoutHandler(searchCluster.dispatchConfig(), invokers.size(), query); query.setHits(originalHits); query.setOffset(originalOffset); @@ -112,14 +112,14 @@ public class InterleavedSearchInvoker extends SearchInvoker implements ResponseM SearchInvoker invoker = availableForProcessing.poll(nextTimeout, TimeUnit.MILLISECONDS); if (invoker == null) { log.fine(() -> "Search timed out with " + coverageAggregator.getAskedNodes() + " requests made, " + - coverageAggregator.getAnswerdNodes() + " responses received"); + coverageAggregator.getAnsweredNodes() + " responses received"); break; } else { InvokerResult toMerge = invoker.getSearchResult(execution); merged = mergeResult(result.getResult(), toMerge, merged, groupingResultAggregator); ejectInvoker(invoker); } - nextTimeout = timeoutHandler.nextTimeout(coverageAggregator.getAnswerdNodes()); + nextTimeout = timeoutHandler.nextTimeoutMS(coverageAggregator.getAnsweredNodes()); } } catch (InterruptedException e) { throw new RuntimeException("Interrupted while waiting for search results", e); @@ -127,7 +127,7 @@ public class InterleavedSearchInvoker extends SearchInvoker implements ResponseM groupingResultAggregator.toAggregatedHit().ifPresent(h -> result.getResult().hits().add(h)); insertNetworkErrors(result.getResult()); - CoverageAggregator adjusted = coverageAggregator.adjustDegradedCoverage((int)searchCluster.dispatchConfig().searchableCopies(), timeoutHandler); + CoverageAggregator adjusted = coverageAggregator.adjustedDegradedCoverage((int)searchCluster.dispatchConfig().searchableCopies(), timeoutHandler); result.getResult().setCoverage(adjusted.createCoverage(timeoutHandler)); int needed = query.getOffset() + query.getHits(); diff --git a/container-search/src/main/java/com/yahoo/search/dispatch/SimpleTimeoutHandler.java b/container-search/src/main/java/com/yahoo/search/dispatch/SimpleTimeoutHandler.java index 8732cee7652..90b6bf87a0b 100644 --- a/container-search/src/main/java/com/yahoo/search/dispatch/SimpleTimeoutHandler.java +++ b/container-search/src/main/java/com/yahoo/search/dispatch/SimpleTimeoutHandler.java @@ -15,7 +15,7 @@ public class SimpleTimeoutHandler implements TimeoutHandler { this.query = query; } @Override - public long nextTimeout(int answeredNodes) { + public long nextTimeoutMS(int answeredNodes) { return query.getTimeLeft(); } diff --git a/container-search/src/main/java/com/yahoo/search/dispatch/TimeoutHandler.java b/container-search/src/main/java/com/yahoo/search/dispatch/TimeoutHandler.java index 7c86b02d368..a8ac0d14ddc 100644 --- a/container-search/src/main/java/com/yahoo/search/dispatch/TimeoutHandler.java +++ b/container-search/src/main/java/com/yahoo/search/dispatch/TimeoutHandler.java @@ -1,11 +1,15 @@ package com.yahoo.search.dispatch; /** - * Computes next timeout + * Computes next timeout in milliseconds * * @author baldersheim */ public interface TimeoutHandler { - long nextTimeout(int answeredNodes); + long nextTimeoutMS(int answeredNodes); + + /** + * Return a bitmask from com.yahoo.container.handler.Coverage.DEGRADED.... set + */ int reason(); } |