diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2018-04-06 15:23:43 +0200 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2018-04-06 15:23:43 +0200 |
commit | 15530417e4be479f2b8370ee4d8053b54a1540c0 (patch) | |
tree | 074ed0ba2a603d159f15a4e4eb05d0fd6a2ed669 /container-search | |
parent | 67e98ccb86f0fa4838a4b2112fd7c0c654972cab (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')
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 |