summaryrefslogtreecommitdiffstats
path: root/container-search/src/main/java/com/yahoo/search/dispatch/searchcluster/Node.java
diff options
context:
space:
mode:
Diffstat (limited to 'container-search/src/main/java/com/yahoo/search/dispatch/searchcluster/Node.java')
-rw-r--r--container-search/src/main/java/com/yahoo/search/dispatch/searchcluster/Node.java9
1 files changed, 7 insertions, 2 deletions
diff --git a/container-search/src/main/java/com/yahoo/search/dispatch/searchcluster/Node.java b/container-search/src/main/java/com/yahoo/search/dispatch/searchcluster/Node.java
index a71ce0354f9..b47f2fefa5b 100644
--- a/container-search/src/main/java/com/yahoo/search/dispatch/searchcluster/Node.java
+++ b/container-search/src/main/java/com/yahoo/search/dispatch/searchcluster/Node.java
@@ -19,6 +19,7 @@ public class Node {
private final int fs4port;
final int group;
+ private final AtomicBoolean statusIsKnown = new AtomicBoolean(false);
private final AtomicBoolean working = new AtomicBoolean(true);
private final AtomicLong activeDocuments = new AtomicLong(0);
@@ -46,11 +47,14 @@ public class Node {
public int group() { return group; }
public void setWorking(boolean working) {
+ this.statusIsKnown.lazySet(true);
this.working.lazySet(working);
}
- /** Returns whether this node is currently responding to requests */
- public boolean isWorking() { return working.get(); }
+ /** Returns whether this node is currently responding to requests, or null if status is not known */
+ public Boolean isWorking() {
+ return statusIsKnown.get() ? working.get() : null;
+ }
/** Updates the active documents on this node */
public void setActiveDocuments(long activeDocuments) {
@@ -77,4 +81,5 @@ public class Node {
@Override
public String toString() { return "search node " + hostname + ":" + fs4port + " in group " + group; }
+
}