summaryrefslogtreecommitdiffstats
path: root/container-search/src/main/java/com/yahoo/search/cluster
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@verizonmedia.com>2019-09-19 19:15:19 +0200
committerJon Bratseth <bratseth@verizonmedia.com>2019-09-19 19:15:19 +0200
commitd9a0deeb28c911ccd90d2b618602cec96196d254 (patch)
tree2c35bbe569f09f8e77c91948ca62d77d7602b6fb /container-search/src/main/java/com/yahoo/search/cluster
parentca11e50b27b343ff8e48e402ec965bd168576834 (diff)
Revert "Merge pull request #10737 from vespa-engine/revert-10717-bratseth/vip-logic"
This reverts commit ae30a47174b67ca78dc33d21770903b3ee626240, reversing changes made to 992b73092f0d14beb3ae380904d27886fe4dbc89.
Diffstat (limited to 'container-search/src/main/java/com/yahoo/search/cluster')
-rw-r--r--container-search/src/main/java/com/yahoo/search/cluster/BaseNodeMonitor.java12
-rw-r--r--container-search/src/main/java/com/yahoo/search/cluster/ClusterMonitor.java4
-rw-r--r--container-search/src/main/java/com/yahoo/search/cluster/NodeManager.java3
3 files changed, 12 insertions, 7 deletions
diff --git a/container-search/src/main/java/com/yahoo/search/cluster/BaseNodeMonitor.java b/container-search/src/main/java/com/yahoo/search/cluster/BaseNodeMonitor.java
index 59674d25402..d21ef35bcc2 100644
--- a/container-search/src/main/java/com/yahoo/search/cluster/BaseNodeMonitor.java
+++ b/container-search/src/main/java/com/yahoo/search/cluster/BaseNodeMonitor.java
@@ -26,25 +26,25 @@ public abstract class BaseNodeMonitor<T> {
/** The object representing the monitored node */
protected T node;
- protected boolean isWorking=true;
+ protected boolean isWorking = true;
/** Whether this node is quarantined for unstability */
- protected boolean isQuarantined=false;
+ protected boolean isQuarantined = false;
/** The last time this node failed, in ms */
- protected long failedAt=0;
+ protected long failedAt = 0;
/** The last time this node responded (failed or succeeded), in ms */
- protected long respondedAt=0;
+ protected long respondedAt = 0;
/** The last time this node responded successfully */
- protected long succeededAt=0;
+ protected long succeededAt = 0;
/** The configuration of this monitor */
protected MonitorConfiguration configuration;
/** Is the node we monitor part of an internal Vespa cluster or not */
- private boolean internal=false;
+ private boolean internal;
public BaseNodeMonitor(boolean internal) {
this.internal=internal;
diff --git a/container-search/src/main/java/com/yahoo/search/cluster/ClusterMonitor.java b/container-search/src/main/java/com/yahoo/search/cluster/ClusterMonitor.java
index ac0c8375f04..b79f6f49c19 100644
--- a/container-search/src/main/java/com/yahoo/search/cluster/ClusterMonitor.java
+++ b/container-search/src/main/java/com/yahoo/search/cluster/ClusterMonitor.java
@@ -24,7 +24,7 @@ public class ClusterMonitor<T> {
private MonitorConfiguration configuration = new MonitorConfiguration();
- private static Logger log=Logger.getLogger(ClusterMonitor.class.getName());
+ private static Logger log = Logger.getLogger(ClusterMonitor.class.getName());
private NodeManager<T> nodeManager;
@@ -69,6 +69,7 @@ public class ClusterMonitor<T> {
/** Called from ClusterSearcher/NodeManager when a node failed */
public synchronized void failed(T node, ErrorMessage error) {
+ nodeManager.statusIsKnown(node);
BaseNodeMonitor<T> monitor = nodeMonitors.get(node);
boolean wasWorking = monitor.isWorking();
monitor.failed(error);
@@ -79,6 +80,7 @@ public class ClusterMonitor<T> {
/** Called when a node responded */
public synchronized void responded(T node) {
+ nodeManager.statusIsKnown(node);
BaseNodeMonitor<T> monitor = nodeMonitors.get(node);
boolean wasFailing =! monitor.isWorking();
monitor.responded();
diff --git a/container-search/src/main/java/com/yahoo/search/cluster/NodeManager.java b/container-search/src/main/java/com/yahoo/search/cluster/NodeManager.java
index 9b20139e3c5..ef10680a4ae 100644
--- a/container-search/src/main/java/com/yahoo/search/cluster/NodeManager.java
+++ b/container-search/src/main/java/com/yahoo/search/cluster/NodeManager.java
@@ -11,6 +11,9 @@ import java.util.concurrent.Executor;
*/
public interface NodeManager<T> {
+ /** Called when we gain evidence about whether or not a node is working */
+ default void statusIsKnown(T node) { }
+
/** Called when a failed node is working (ready for production) again */
void working(T node);