From 5822cbba0a5961affe5f390c8b479cfc2d4f9a9b Mon Sep 17 00:00:00 2001 From: Henning Baldersheim Date: Fri, 8 Jan 2021 09:33:59 +0100 Subject: Revert "Disable topk optimisation on dispatch when content distribution is se…" MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dispatch/InterleavedSearchInvokerTest.java | 31 +++++++-------- .../dispatch/searchcluster/SearchClusterTest.java | 45 +--------------------- 2 files changed, 14 insertions(+), 62 deletions(-) (limited to 'container-search/src/test/java/com/yahoo/search/dispatch') 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 8cab7884152..2bfa778a2ba 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 @@ -204,8 +204,8 @@ public class InterleavedSearchInvokerTest { private static final List A5Aux = Arrays.asList(-1.0,11.0,8.5,7.5,-7.0,3.0,2.0); private static final List B5Aux = Arrays.asList(9.0,8.0,-3.0,7.0,6.0,1.0, -1.0); - private void validateThatTopKProbabilityOverrideTakesEffect(Double topKProbability, int expectedK, boolean isContentWellBalanced) throws IOException { - InterleavedSearchInvoker invoker = createInterLeavedTestInvoker(A5, B5, isContentWellBalanced); + private void validateThatTopKProbabilityOverrideTakesEffect(Double topKProbability, int expectedK) throws IOException { + InterleavedSearchInvoker invoker = createInterLeavedTestInvoker(A5, B5); query.setHits(8); query.properties().set(Dispatcher.topKProbability, topKProbability); SearchInvoker [] invokers = invoker.invokers().toArray(new SearchInvoker[0]); @@ -227,17 +227,13 @@ public class InterleavedSearchInvokerTest { @Test public void requireThatTopKProbabilityOverrideTakesEffect() throws IOException { - validateThatTopKProbabilityOverrideTakesEffect(null, 8, true); - validateThatTopKProbabilityOverrideTakesEffect(0.8, 7, true); - } - @Test - public void requireThatTopKProbabilityOverrideIsDisabledOnContentSkew() throws IOException { - validateThatTopKProbabilityOverrideTakesEffect(0.8, 8, false); + validateThatTopKProbabilityOverrideTakesEffect(null, 8); + validateThatTopKProbabilityOverrideTakesEffect(0.8, 7); } @Test public void requireThatMergeOfConcreteHitsObeySorting() throws IOException { - InterleavedSearchInvoker invoker = createInterLeavedTestInvoker(A5, B5, true); + InterleavedSearchInvoker invoker = createInterLeavedTestInvoker(A5, B5); query.setHits(12); Result result = invoker.search(query, null); assertEquals(10, result.hits().size()); @@ -246,7 +242,7 @@ public class InterleavedSearchInvokerTest { assertEquals(0, result.getQuery().getOffset()); assertEquals(12, result.getQuery().getHits()); - invoker = createInterLeavedTestInvoker(B5, A5, true); + invoker = createInterLeavedTestInvoker(B5, A5); result = invoker.search(query, null); assertEquals(10, result.hits().size()); assertEquals(11.0, result.hits().get(0).getRelevance().getScore(), DELTA); @@ -257,7 +253,7 @@ public class InterleavedSearchInvokerTest { @Test public void requireThatMergeOfConcreteHitsObeyOffset() throws IOException { - InterleavedSearchInvoker invoker = createInterLeavedTestInvoker(A5, B5, true); + InterleavedSearchInvoker invoker = createInterLeavedTestInvoker(A5, B5); query.setHits(3); query.setOffset(5); Result result = invoker.search(query, null); @@ -267,7 +263,7 @@ public class InterleavedSearchInvokerTest { assertEquals(0, result.getQuery().getOffset()); assertEquals(3, result.getQuery().getHits()); - invoker = createInterLeavedTestInvoker(B5, A5, true); + invoker = createInterLeavedTestInvoker(B5, A5); query.setOffset(5); result = invoker.search(query, null); assertEquals(3, result.hits().size()); @@ -279,7 +275,7 @@ public class InterleavedSearchInvokerTest { @Test public void requireThatMergeOfConcreteHitsObeyOffsetWithAuxilliaryStuff() throws IOException { - InterleavedSearchInvoker invoker = createInterLeavedTestInvoker(A5Aux, B5Aux, true); + InterleavedSearchInvoker invoker = createInterLeavedTestInvoker(A5Aux, B5Aux); query.setHits(3); query.setOffset(5); Result result = invoker.search(query, null); @@ -290,7 +286,7 @@ public class InterleavedSearchInvokerTest { assertEquals(0, result.getQuery().getOffset()); assertEquals(3, result.getQuery().getHits()); - invoker = createInterLeavedTestInvoker(B5Aux, A5Aux, true); + invoker = createInterLeavedTestInvoker(B5Aux, A5Aux); query.setOffset(5); result = invoker.search(query, null); assertEquals(7, result.hits().size()); @@ -301,13 +297,12 @@ public class InterleavedSearchInvokerTest { assertEquals(3, result.getQuery().getHits()); } - private static InterleavedSearchInvoker createInterLeavedTestInvoker(List a, List b, - boolean isContentWellBalanced) { + private static InterleavedSearchInvoker createInterLeavedTestInvoker(List a, List b) { SearchCluster cluster = new MockSearchCluster("!", 1, 2); List invokers = new ArrayList<>(); invokers.add(createInvoker(a, 0)); invokers.add(createInvoker(b, 1)); - InterleavedSearchInvoker invoker = new InterleavedSearchInvoker(invokers, isContentWellBalanced, cluster, Collections.emptySet()); + InterleavedSearchInvoker invoker = new InterleavedSearchInvoker(invokers, cluster, Collections.emptySet()); invoker.responseAvailable(invokers.get(0)); invoker.responseAvailable(invokers.get(1)); return invoker; @@ -358,7 +353,7 @@ public class InterleavedSearchInvokerTest { invokers.add(new MockInvoker(i)); } - return new InterleavedSearchInvoker(invokers, false, searchCluster, null) { + return new InterleavedSearchInvoker(invokers, searchCluster, null) { @Override protected long currentTime() { return clock.millis(); diff --git a/container-search/src/test/java/com/yahoo/search/dispatch/searchcluster/SearchClusterTest.java b/container-search/src/test/java/com/yahoo/search/dispatch/searchcluster/SearchClusterTest.java index c6fd48836fe..09024150a9a 100644 --- a/container-search/src/test/java/com/yahoo/search/dispatch/searchcluster/SearchClusterTest.java +++ b/container-search/src/test/java/com/yahoo/search/dispatch/searchcluster/SearchClusterTest.java @@ -8,6 +8,7 @@ import com.yahoo.net.HostName; import com.yahoo.prelude.Pong; import com.yahoo.search.cluster.ClusterMonitor; import com.yahoo.search.dispatch.MockSearchCluster; +import com.yahoo.search.dispatch.TopKEstimator; import com.yahoo.search.result.ErrorMessage; import org.junit.Test; @@ -334,48 +335,4 @@ public class SearchClusterTest { assertEquals(3, node.getLastReceivedPongId()); } - @Test - public void requireThatEmptyGroupIsInBalance() { - Group group = new Group(0, new ArrayList<>()); - assertTrue(group.isContentWellBalanced()); - group.aggregateNodeValues(); - assertTrue(group.isContentWellBalanced()); - } - - @Test - public void requireThatSingleNodeGroupIsInBalance() { - Group group = new Group(0, Arrays.asList(new Node(1, "n", 1))); - group.nodes().forEach(node -> node.setWorking(true)); - assertTrue(group.isContentWellBalanced()); - group.aggregateNodeValues(); - assertTrue(group.isContentWellBalanced()); - group.nodes().get(0).setActiveDocuments(1000); - group.aggregateNodeValues(); - assertTrue(group.isContentWellBalanced()); - } - - @Test - public void requireThatMultiNodeGroupDetectsBalance() { - Group group = new Group(0, Arrays.asList(new Node(1, "n1", 1), new Node(2, "n2", 1))); - assertTrue(group.isContentWellBalanced()); - group.nodes().forEach(node -> node.setWorking(true)); - assertTrue(group.isContentWellBalanced()); - group.aggregateNodeValues(); - assertTrue(group.isContentWellBalanced()); - group.nodes().get(0).setActiveDocuments(1000); - group.aggregateNodeValues(); - assertFalse(group.isContentWellBalanced()); - group.nodes().get(1).setActiveDocuments(100); - group.aggregateNodeValues(); - assertFalse(group.isContentWellBalanced()); - group.nodes().get(1).setActiveDocuments(800); - group.aggregateNodeValues(); - assertFalse(group.isContentWellBalanced()); - group.nodes().get(1).setActiveDocuments(818); - group.aggregateNodeValues(); - assertFalse(group.isContentWellBalanced()); - group.nodes().get(1).setActiveDocuments(819); - group.aggregateNodeValues(); - assertTrue(group.isContentWellBalanced()); - } } -- cgit v1.2.3