aboutsummaryrefslogtreecommitdiffstats
path: root/container-search/src/test/java/com/yahoo/search/dispatch
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2022-09-20 13:03:53 +0200
committerHenning Baldersheim <balder@yahoo-inc.com>2022-09-20 13:03:53 +0200
commit92173842b744fd7d87eb62055fbf908e6bcdb51d (patch)
treef47bfee378e5711af7e09e1e534dbcc20678a203 /container-search/src/test/java/com/yahoo/search/dispatch
parent46aa0590ff3c124f9d3e62bcf7511379f28a1356 (diff)
Add test that we calculate coverage based on target-active and reduandancy when told to do so.
Diffstat (limited to 'container-search/src/test/java/com/yahoo/search/dispatch')
-rw-r--r--container-search/src/test/java/com/yahoo/search/dispatch/InterleavedSearchInvokerTest.java57
-rw-r--r--container-search/src/test/java/com/yahoo/search/dispatch/MockSearchCluster.java8
2 files changed, 41 insertions, 24 deletions
diff --git a/container-search/src/test/java/com/yahoo/search/dispatch/InterleavedSearchInvokerTest.java b/container-search/src/test/java/com/yahoo/search/dispatch/InterleavedSearchInvokerTest.java
index cff383db8c5..180beb43ee8 100644
--- a/container-search/src/test/java/com/yahoo/search/dispatch/InterleavedSearchInvokerTest.java
+++ b/container-search/src/test/java/com/yahoo/search/dispatch/InterleavedSearchInvokerTest.java
@@ -400,29 +400,46 @@ public class InterleavedSearchInvokerTest {
return hits;
}
- @Test
- void requireCorrectCoverageCalculationWhenDegradedCoverageIsExpected() throws IOException {
- SearchCluster cluster = new MockSearchCluster("!", 1, 2);
- invokers.add(new MockInvoker(0, createCoverage(50155, 50155, 50155, 1, 1, 0)));
+ void verifyCorrectCoverageCalculationWhenDegradedCoverageIsExpected(DispatchConfig dispatchConfig, int expectedCoverage) throws IOException {
+ SearchCluster cluster = new MockSearchCluster("!", dispatchConfig, 1, 2);
+ invokers.add(new MockInvoker(0, createCoverage(50155, 50155, 60000, 1, 1, 0)));
Coverage errorCoverage = new Coverage(0, 0, 0);
errorCoverage.setNodesTried(1);
invokers.add(new SearchErrorInvoker(ErrorMessage.createBackendCommunicationError("node is down"), errorCoverage));
- SearchInvoker invoker = createInterleavedInvoker(cluster, new Group(0, List.of()), 0);
-
- expectedEvents.add(new Event(null, 1, 1));
- expectedEvents.add(new Event(null, 100, 0));
-
- Result result = invoker.search(query, null);
-
- Coverage cov = result.getCoverage(true);
- assertEquals(50155L, cov.getDocs());
- assertEquals(1, cov.getNodes());
- assertEquals(2, cov.getNodesTried());
- assertFalse(cov.getFull());
- assertEquals(50, cov.getResultPercentage());
- assertEquals(1, cov.getResultSets());
- assertEquals(0, cov.getFullResultSets());
- assertTrue(cov.isDegradedByTimeout());
+ try (SearchInvoker invoker = createInterleavedInvoker(cluster, new Group(0, List.of()), 0)) {
+
+ expectedEvents.add(new Event(null, 1, 1));
+ expectedEvents.add(new Event(null, 100, 0));
+
+ Result result = invoker.search(query, null);
+
+ Coverage cov = result.getCoverage(true);
+ assertEquals(50155L, cov.getDocs());
+ assertEquals(1, cov.getNodes());
+ assertEquals(2, cov.getNodesTried());
+ assertFalse(cov.getFull());
+ assertEquals(expectedCoverage, cov.getResultPercentage());
+ assertEquals(1, cov.getResultSets());
+ assertEquals(0, cov.getFullResultSets());
+ assertTrue(cov.isDegradedByTimeout());
+ }
+ }
+ @Test
+ void requireCorrectCoverageCalculationWhenDegradedCoverageIsExpectedUsingActiveDocs() throws IOException {
+ verifyCorrectCoverageCalculationWhenDegradedCoverageIsExpected(MockSearchCluster.createDispatchConfig(100.0, List.of())
+ .searchableCopies(1)
+ .redundancy(2)
+ .build(),
+ 50);
+ }
+ @Test
+ void requireCorrectCoverageCalculationWhenDegradedCoverageIsExpectedUsingTargetActiveDocs() throws IOException {
+ verifyCorrectCoverageCalculationWhenDegradedCoverageIsExpected(MockSearchCluster.createDispatchConfig(100.0, List.of())
+ .searchableCopies(1)
+ .redundancy(1)
+ .computeCoverageFromTargetActiveDocs(true)
+ .build(),
+ 42);
}
private InterleavedSearchInvoker createInterleavedInvoker(SearchCluster searchCluster, Group group, int numInvokers) {
diff --git a/container-search/src/test/java/com/yahoo/search/dispatch/MockSearchCluster.java b/container-search/src/test/java/com/yahoo/search/dispatch/MockSearchCluster.java
index a076b929ad7..7a11e906293 100644
--- a/container-search/src/test/java/com/yahoo/search/dispatch/MockSearchCluster.java
+++ b/container-search/src/test/java/com/yahoo/search/dispatch/MockSearchCluster.java
@@ -105,14 +105,14 @@ public class MockSearchCluster extends SearchCluster {
return createDispatchConfig(100.0, nodes);
}
public static DispatchConfig createDispatchConfig(List<Node> nodes) {
- return createDispatchConfig(100.0, nodes);
+ return createDispatchConfig(100.0, nodes).build();
}
public static DispatchConfig createDispatchConfig(double minSearchCoverage, Node... nodes) {
- return createDispatchConfig(minSearchCoverage, Arrays.asList(nodes));
+ return createDispatchConfig(minSearchCoverage, Arrays.asList(nodes)).build();
}
- public static DispatchConfig createDispatchConfig(double minSearchCoverage, List<Node> nodes) {
+ public static DispatchConfig.Builder createDispatchConfig(double minSearchCoverage, List<Node> nodes) {
DispatchConfig.Builder builder = new DispatchConfig.Builder();
builder.minActivedocsPercentage(88.0);
builder.minSearchCoverage(minSearchCoverage);
@@ -125,7 +125,7 @@ public class MockSearchCluster extends SearchCluster {
for (Node n : nodes) {
builder.node(new DispatchConfig.Node.Builder().key(n.key()).host(n.hostname()).port(port++).group(n.group()));
}
- return new DispatchConfig(builder);
+ return builder;
}
}