summaryrefslogtreecommitdiffstats
path: root/container-search
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2018-04-06 15:23:43 +0200
committerHenning Baldersheim <balder@yahoo-inc.com>2018-04-06 15:23:43 +0200
commit15530417e4be479f2b8370ee4d8053b54a1540c0 (patch)
tree074ed0ba2a603d159f15a4e4eb05d0fd6a2ed669 /container-search
parent67e98ccb86f0fa4838a4b2112fd7c0c654972cab (diff)
As we are on tcp and only local connection we can afford to be a bit more aggressive on failing a backend.
Diffstat (limited to 'container-search')
-rw-r--r--container-search/src/main/java/com/yahoo/prelude/Pong.java1
-rw-r--r--container-search/src/main/java/com/yahoo/prelude/cluster/ClusterSearcher.java8
-rw-r--r--container-search/src/main/java/com/yahoo/prelude/cluster/MonitorConfiguration.java2
-rw-r--r--container-search/src/main/java/com/yahoo/prelude/cluster/NodeMonitor.java7
-rw-r--r--container-search/src/main/java/com/yahoo/search/cluster/ClusterSearcher.java9
5 files changed, 12 insertions, 15 deletions
diff --git a/container-search/src/main/java/com/yahoo/prelude/Pong.java b/container-search/src/main/java/com/yahoo/prelude/Pong.java
index 55ae2c77fdb..017fceb2942 100644
--- a/container-search/src/main/java/com/yahoo/prelude/Pong.java
+++ b/container-search/src/main/java/com/yahoo/prelude/Pong.java
@@ -9,6 +9,7 @@ import java.util.Optional;
import com.yahoo.fs4.PongPacket;
import com.yahoo.search.result.ErrorMessage;
import com.yahoo.search.statistics.ElapsedTime;
+import com.yahoo.container.protect.Error;
/**
* An answer from Ping.
diff --git a/container-search/src/main/java/com/yahoo/prelude/cluster/ClusterSearcher.java b/container-search/src/main/java/com/yahoo/prelude/cluster/ClusterSearcher.java
index 8341cf6884c..2709755da5d 100644
--- a/container-search/src/main/java/com/yahoo/prelude/cluster/ClusterSearcher.java
+++ b/container-search/src/main/java/com/yahoo/prelude/cluster/ClusterSearcher.java
@@ -82,8 +82,6 @@ public class ClusterSearcher extends Searcher {
// Mapping from rank profile names to document types containing them
private final Map<String, Set<String>> rankProfiles = new HashMap<>();
- private final boolean failoverToRemote;
-
private final FS4ResourcePool fs4ResourcePool;
private final long maxQueryTimeout; // in milliseconds
@@ -122,7 +120,6 @@ public class ClusterSearcher extends Searcher {
clusterModelName = clusterConfig.clusterName();
QrSearchersConfig.Searchcluster searchClusterConfig = getSearchClusterConfigFromClusterName(qrsConfig, clusterModelName);
documentTypes = new LinkedHashSet<>();
- failoverToRemote = clusterConfig.failoverToRemote();
String eventName = clusterModelName + ".cache_hit_ratio";
cacheHitRatio = new Value(eventName, manager, new Value.Parameters().setNameExtension(false)
@@ -234,7 +231,6 @@ public class ClusterSearcher extends Searcher {
/** Do not use, for internal testing purposes only. **/
ClusterSearcher(Set<String> documentTypes) {
- this.failoverToRemote = false;
this.documentTypes = documentTypes;
monitor = new ClusterMonitor(this, new QrMonitorConfig(new QrMonitorConfig.Builder()), Optional.of(new VipStatus()));
cacheHitRatio = new Value("com.yahoo.prelude.cluster.ClusterSearcher.ClusterSearcher().dummy",
@@ -257,10 +253,6 @@ public class ClusterSearcher extends Searcher {
return new CacheControl(config.cacheSize(), config.cacheTimeout());
}
- public String getClusterModelName() {
- return clusterModelName;
- }
-
ClusterMonitor getMonitor() {
return monitor;
}
diff --git a/container-search/src/main/java/com/yahoo/prelude/cluster/MonitorConfiguration.java b/container-search/src/main/java/com/yahoo/prelude/cluster/MonitorConfiguration.java
index f3360d1b8d2..cd354b8451a 100644
--- a/container-search/src/main/java/com/yahoo/prelude/cluster/MonitorConfiguration.java
+++ b/container-search/src/main/java/com/yahoo/prelude/cluster/MonitorConfiguration.java
@@ -12,7 +12,7 @@ public class MonitorConfiguration {
/**
* The interval in ms between consecutive checks of the monitored nodes
*/
- private final long checkInterval = 1000;
+ private final long checkInterval = 100;
/**
* The number of milliseconds to attempt to complete a request before giving
diff --git a/container-search/src/main/java/com/yahoo/prelude/cluster/NodeMonitor.java b/container-search/src/main/java/com/yahoo/prelude/cluster/NodeMonitor.java
index 5ccaff0f198..298eda9b201 100644
--- a/container-search/src/main/java/com/yahoo/prelude/cluster/NodeMonitor.java
+++ b/container-search/src/main/java/com/yahoo/prelude/cluster/NodeMonitor.java
@@ -66,15 +66,16 @@ public class NodeMonitor {
public void failed(ErrorMessage error) {
long respondedAt = System.currentTimeMillis();
- if (error.getCode() == BACKEND_COMMUNICATION_ERROR.code
- || error.getCode() == NO_ANSWER_WHEN_PINGING_NODE.code)
- {
+ if (error.getCode() == NO_ANSWER_WHEN_PINGING_NODE.code) {
// Only count not being able to talk to backend at all
// as errors we care about
if ((respondedAt - succeededAt) > 10000) {
this.searchNodesOnline = false;
setWorking(false, "Not working for 10 s: " + error.toString());
}
+ } else if (error.getCode() == BACKEND_COMMUNICATION_ERROR.code) {
+ this.searchNodesOnline = false;
+ setWorking(false, "Backend communication error: " + error.toString());
} else {
succeededAt = respondedAt;
}
diff --git a/container-search/src/main/java/com/yahoo/search/cluster/ClusterSearcher.java b/container-search/src/main/java/com/yahoo/search/cluster/ClusterSearcher.java
index 4be8d571b0f..f901194d7e6 100644
--- a/container-search/src/main/java/com/yahoo/search/cluster/ClusterSearcher.java
+++ b/container-search/src/main/java/com/yahoo/search/cluster/ClusterSearcher.java
@@ -3,11 +3,9 @@ package com.yahoo.search.cluster;
import com.yahoo.component.ComponentId;
import com.yahoo.container.protect.Error;
-import com.yahoo.fs4.mplex.Backend;
import com.yahoo.log.LogLevel;
import com.yahoo.prelude.Ping;
import com.yahoo.prelude.Pong;
-import com.yahoo.prelude.fastsearch.FastSearcher;
import com.yahoo.yolean.Exceptions;
import com.yahoo.search.Query;
import com.yahoo.search.Result;
@@ -16,7 +14,12 @@ import com.yahoo.search.result.ErrorMessage;
import com.yahoo.search.searchchain.Execution;
import java.util.List;
-import java.util.concurrent.*;
+import java.util.concurrent.Callable;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.Executor;
+import java.util.concurrent.FutureTask;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.TimeoutException;
/**
* Implements clustering (failover and load balancing) over a set of client