diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2022-09-09 16:37:46 +0200 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2022-09-09 16:37:46 +0200 |
commit | c6552160827cd02d3aa0c0439f15be1823dc754a (patch) | |
tree | 3aa263f7f69637cba465a8ec0308125fc7ab6777 /container-search/src/main/java/com/yahoo/search/dispatch/searchcluster/Group.java | |
parent | e0dcdda7286506373b2f60e657afb931ca5edf8b (diff) |
soonActive => targetActive
Wire in targetActive in MonitorReply/Pong.
Diffstat (limited to 'container-search/src/main/java/com/yahoo/search/dispatch/searchcluster/Group.java')
-rw-r--r-- | container-search/src/main/java/com/yahoo/search/dispatch/searchcluster/Group.java | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/container-search/src/main/java/com/yahoo/search/dispatch/searchcluster/Group.java b/container-search/src/main/java/com/yahoo/search/dispatch/searchcluster/Group.java index d30abd1d047..cf161638104 100644 --- a/container-search/src/main/java/com/yahoo/search/dispatch/searchcluster/Group.java +++ b/container-search/src/main/java/com/yahoo/search/dispatch/searchcluster/Group.java @@ -26,6 +26,7 @@ public class Group { private final AtomicBoolean hasSufficientCoverage = new AtomicBoolean(true); private final AtomicBoolean hasFullCoverage = new AtomicBoolean(true); private final AtomicLong activeDocuments = new AtomicLong(0); + private final AtomicLong targetActiveDocuments = new AtomicLong(0); private final AtomicBoolean isBlockingWrites = new AtomicBoolean(false); private final AtomicBoolean isBalanced = new AtomicBoolean(true); @@ -68,6 +69,8 @@ public class Group { public void aggregateNodeValues() { long activeDocs = nodes.stream().filter(node -> node.isWorking() == Boolean.TRUE).mapToLong(Node::getActiveDocuments).sum(); activeDocuments.set(activeDocs); + long targetActiveDocs = nodes.stream().filter(node -> node.isWorking() == Boolean.TRUE).mapToLong(Node::getTargetActiveDocuments).sum(); + targetActiveDocuments.set(targetActiveDocs); isBlockingWrites.set(nodes.stream().anyMatch(Node::isBlockingWrites)); int numWorkingNodes = workingNodes(); if (numWorkingNodes > 0) { @@ -90,6 +93,9 @@ public class Group { /** Returns the active documents on this group. If unknown, 0 is returned. */ long activeDocuments() { return activeDocuments.get(); } + /** Returns the target active documents on this group. If unknown, 0 is returned. */ + long targetActiveDocuments() { return targetActiveDocuments.get(); } + /** Returns whether any node in this group is currently blocking write operations */ public boolean isBlockingWrites() { return isBlockingWrites.get(); } @@ -99,7 +105,7 @@ public class Group { /** Returns whether this group has too few documents per node to expect it to be balanced */ public boolean isSparse() { if (nodes.isEmpty()) return false; - return activeDocuments.get() / nodes.size() < minDocsPerNodeToRequireLowSkew; + return activeDocuments() / nodes.size() < minDocsPerNodeToRequireLowSkew; } public boolean fullCoverageStatusChanged(boolean hasFullCoverageNow) { |