You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ne...@apache.org on 2022/08/04 02:10:24 UTC
[iotdb] branch master updated: [IOTDB-4028] Npe in updateNodeLoadStatistic of LoadManager when cluster first starts. (#6886)
This is an automated email from the ASF dual-hosted git repository.
neuyilan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/master by this push:
new 1bdf3f9598 [IOTDB-4028] Npe in updateNodeLoadStatistic of LoadManager when cluster first starts. (#6886)
1bdf3f9598 is described below
commit 1bdf3f9598f9378a8b9a086178c3a4132524588c
Author: 23931017wu <71...@users.noreply.github.com>
AuthorDate: Thu Aug 4 10:10:18 2022 +0800
[IOTDB-4028] Npe in updateNodeLoadStatistic of LoadManager when cluster first starts. (#6886)
---
.../org/apache/iotdb/confignode/manager/NodeManager.java | 9 +++++++++
.../apache/iotdb/confignode/manager/load/LoadManager.java | 4 +++-
.../org/apache/iotdb/confignode/persistence/NodeInfo.java | 15 +++++++++++++++
3 files changed, 27 insertions(+), 1 deletion(-)
diff --git a/confignode/src/main/java/org/apache/iotdb/confignode/manager/NodeManager.java b/confignode/src/main/java/org/apache/iotdb/confignode/manager/NodeManager.java
index 3e8d430ac0..4b5fa0bb38 100644
--- a/confignode/src/main/java/org/apache/iotdb/confignode/manager/NodeManager.java
+++ b/confignode/src/main/java/org/apache/iotdb/confignode/manager/NodeManager.java
@@ -182,6 +182,15 @@ public class NodeManager {
return nodeInfo.getRegisteredDataNodeCount();
}
+ /**
+ * Only leader use this interface
+ *
+ * @return The number of registered TotalNodes
+ */
+ public int getRegisteredNodeCount() {
+ return nodeInfo.getRegisteredNodeCount();
+ }
+
/**
* Only leader use this interface
*
diff --git a/confignode/src/main/java/org/apache/iotdb/confignode/manager/load/LoadManager.java b/confignode/src/main/java/org/apache/iotdb/confignode/manager/load/LoadManager.java
index 6c0a21cfd9..4ba890c195 100644
--- a/confignode/src/main/java/org/apache/iotdb/confignode/manager/load/LoadManager.java
+++ b/confignode/src/main/java/org/apache/iotdb/confignode/manager/load/LoadManager.java
@@ -292,7 +292,9 @@ public class LoadManager {
if (isNeedBroadcast.get()) {
broadcastLatestRegionRouteMap();
}
- addMetrics();
+ if (nodeCacheMap.size() == getNodeManager().getRegisteredNodeCount()) {
+ addMetrics();
+ }
}
private void broadcastLatestRegionRouteMap() {
diff --git a/confignode/src/main/java/org/apache/iotdb/confignode/persistence/NodeInfo.java b/confignode/src/main/java/org/apache/iotdb/confignode/persistence/NodeInfo.java
index 3095fce6dc..4858afdfaa 100644
--- a/confignode/src/main/java/org/apache/iotdb/confignode/persistence/NodeInfo.java
+++ b/confignode/src/main/java/org/apache/iotdb/confignode/persistence/NodeInfo.java
@@ -268,6 +268,21 @@ public class NodeInfo implements SnapshotProcessor {
}
return result;
}
+
+ /** Return the number of registered Nodes */
+ public int getRegisteredNodeCount() {
+ int result;
+ configNodeInfoReadWriteLock.readLock().lock();
+ dataNodeInfoReadWriteLock.readLock().lock();
+ try {
+ result = registeredConfigNodes.size() + registeredDataNodes.size();
+ } finally {
+ dataNodeInfoReadWriteLock.readLock().unlock();
+ configNodeInfoReadWriteLock.readLock().unlock();
+ }
+ return result;
+ }
+
/** Return the number of total cpu cores in online DataNodes */
public int getTotalCpuCoreCount() {
int result = 0;