summaryrefslogtreecommitdiffstats
path: root/container-search
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2018-04-10 17:07:09 +0200
committerGitHub <noreply@github.com>2018-04-10 17:07:09 +0200
commit2604f21cf9a19057f25bbb06ebded9adfa48dd36 (patch)
treeb36ed98bc247833fc6275ebb24cb7d3994f9d1ae /container-search
parent3de8865dd1f5595119eb62109be9a6ea0686e559 (diff)
Revert "Direct dispatch by default when group size is 1"
Diffstat (limited to 'container-search')
-rw-r--r--container-search/src/main/java/com/yahoo/prelude/fastsearch/FS4ResourcePool.java1
-rw-r--r--container-search/src/main/java/com/yahoo/prelude/fastsearch/FastSearcher.java11
-rw-r--r--container-search/src/test/java/com/yahoo/prelude/fastsearch/test/DirectSearchTestCase.java4
-rw-r--r--container-search/src/test/java/com/yahoo/search/grouping/result/HitRendererTestCase.java2
-rw-r--r--container-search/src/test/java/com/yahoo/search/grouping/vespa/GroupingTransformTestCase.java2
5 files changed, 14 insertions, 6 deletions
diff --git a/container-search/src/main/java/com/yahoo/prelude/fastsearch/FS4ResourcePool.java b/container-search/src/main/java/com/yahoo/prelude/fastsearch/FS4ResourcePool.java
index 8d4e9418c1c..4b71b3a45a4 100644
--- a/container-search/src/main/java/com/yahoo/prelude/fastsearch/FS4ResourcePool.java
+++ b/container-search/src/main/java/com/yahoo/prelude/fastsearch/FS4ResourcePool.java
@@ -27,6 +27,7 @@ import java.util.logging.Logger;
* Provider for {@link com.yahoo.fs4.mplex.ListenerPool}. All users will get the same pool instance.
*
* @author baldersheim
+ * @since 5.4.0
*/
public class FS4ResourcePool extends AbstractComponent {
diff --git a/container-search/src/main/java/com/yahoo/prelude/fastsearch/FastSearcher.java b/container-search/src/main/java/com/yahoo/prelude/fastsearch/FastSearcher.java
index a2fdcae4a18..df0ed02b70c 100644
--- a/container-search/src/main/java/com/yahoo/prelude/fastsearch/FastSearcher.java
+++ b/container-search/src/main/java/com/yahoo/prelude/fastsearch/FastSearcher.java
@@ -69,6 +69,8 @@ public class FastSearcher extends VespaBackEndSearcher {
private final FS4ResourcePool fs4ResourcePool;
+ private final String selfHostname;
+
/**
* Creates a Fastsearcher.
*
@@ -92,6 +94,7 @@ public class FastSearcher extends VespaBackEndSearcher {
this.dispatchBackend = dispatchBackend;
this.fs4ResourcePool = fs4ResourcePool;
this.dispatcher = dispatcher;
+ this.selfHostname = HostName.getLocalhost();
}
private int countFastHits(Result result) {
@@ -221,12 +224,16 @@ public class FastSearcher extends VespaBackEndSearcher {
* for efficiency.
*/
private Backend chooseBackend(Query query) {
- if ( ! query.properties().getBoolean(dispatchDirect, true)) return dispatchBackend;
+ // TODO 2016-08-16: Turn this on by default (by changing the 'false' below to 'true')
+ if ( ! query.properties().getBoolean(dispatchDirect, false)) return dispatchBackend;
+
+ // Don't use direct dispatch if the upstream ClusterSearcher did not chose the local dispatch
+ // as that probably means that we are in a failover situation
+ if ( ! dispatchBackend.getHost().equals(selfHostname)) return dispatchBackend;
Optional<SearchCluster.Node> directDispatchRecipient = dispatcher.searchCluster().directDispatchTarget();
if ( ! directDispatchRecipient.isPresent()) return dispatchBackend;
- // Dispatch directly to the single, local search node
query.trace(false, 2, "Dispatching directly to ", directDispatchRecipient.get());
return fs4ResourcePool.getBackend(directDispatchRecipient.get().hostname(),
directDispatchRecipient.get().fs4port());
diff --git a/container-search/src/test/java/com/yahoo/prelude/fastsearch/test/DirectSearchTestCase.java b/container-search/src/test/java/com/yahoo/prelude/fastsearch/test/DirectSearchTestCase.java
index ca3a25d3bfa..89d3bc7d3b0 100644
--- a/container-search/src/test/java/com/yahoo/prelude/fastsearch/test/DirectSearchTestCase.java
+++ b/container-search/src/test/java/com/yahoo/prelude/fastsearch/test/DirectSearchTestCase.java
@@ -29,10 +29,10 @@ public class DirectSearchTestCase {
}
@Test
- public void testDirectSearchEnabledByDefault() {
+ public void testDirectSearchDisabledByDefault() {
FastSearcherTester tester = new FastSearcherTester(1, FastSearcherTester.selfHostname + ":9999:0");
tester.search("?query=test");
- assertEquals("The FastSearcher has used the local search node connection", 1, tester.requestCount(FastSearcherTester.selfHostname, 9999));
+ assertEquals(0, tester.requestCount(FastSearcherTester.selfHostname, 9999));
}
@Test
diff --git a/container-search/src/test/java/com/yahoo/search/grouping/result/HitRendererTestCase.java b/container-search/src/test/java/com/yahoo/search/grouping/result/HitRendererTestCase.java
index bee9aa90f56..0643e8d77f1 100644
--- a/container-search/src/test/java/com/yahoo/search/grouping/result/HitRendererTestCase.java
+++ b/container-search/src/test/java/com/yahoo/search/grouping/result/HitRendererTestCase.java
@@ -15,7 +15,7 @@ import static org.junit.Assert.assertEquals;
import static org.junit.Assert.fail;
/**
- * @author Simon Thoresen
+ * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
*/
public class HitRendererTestCase {
diff --git a/container-search/src/test/java/com/yahoo/search/grouping/vespa/GroupingTransformTestCase.java b/container-search/src/test/java/com/yahoo/search/grouping/vespa/GroupingTransformTestCase.java
index 185bcae424a..010a54160e9 100644
--- a/container-search/src/test/java/com/yahoo/search/grouping/vespa/GroupingTransformTestCase.java
+++ b/container-search/src/test/java/com/yahoo/search/grouping/vespa/GroupingTransformTestCase.java
@@ -7,7 +7,7 @@ import org.junit.Test;
import static org.junit.Assert.*;
/**
- * @author Simon Thoresen
+ * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
*/
public class GroupingTransformTestCase {