summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2022-09-14 16:35:35 +0200
committerHenning Baldersheim <balder@yahoo-inc.com>2022-09-14 16:35:35 +0200
commit623d8607886bc3c993908372b6f5dc43f25a903b (patch)
tree6444087606c412798c11f3bd940cd40c28d9f1a3
parentcb4511771916c9c96bd17fba30e46a9f1b0110f7 (diff)
Clarify semantics by better naming and correct code visibility
-rw-r--r--container-search/src/main/java/com/yahoo/search/dispatch/AdaptiveTimeoutHandler.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/dispatch/CoverageAggregator.java6
-rw-r--r--container-search/src/main/java/com/yahoo/search/dispatch/InterleavedSearchInvoker.java12
-rw-r--r--container-search/src/main/java/com/yahoo/search/dispatch/SimpleTimeoutHandler.java2
-rw-r--r--container-search/src/main/java/com/yahoo/search/dispatch/TimeoutHandler.java8
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();
}