You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ha...@apache.org on 2026/04/02 04:25:33 UTC
(iotdb) 01/01: Make Windows metric binding asynchronous and remove test waits
This is an automated email from the ASF dual-hosted git repository.
haonan pushed a commit to branch opt/windows_metric_bind
in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit fedff2b40f9c676fd7595b5b7df77f98768ebda3
Author: HTHou <ha...@apache.org>
AuthorDate: Thu Apr 2 12:25:10 2026 +0800
Make Windows metric binding asynchronous and remove test waits
---
.../java/org/apache/iotdb/session/it/IoTDBConnectionsIT.java | 1 -
.../java/org/apache/iotdb/session/it/pool/SessionPoolIT.java | 2 --
.../org/apache/iotdb/metrics/metricsets/disk/DiskMetrics.java | 11 +++++++++++
.../metrics/metricsets/disk/WindowsDiskMetricsManager.java | 10 ----------
.../org/apache/iotdb/metrics/metricsets/net/NetMetrics.java | 11 +++++++++++
.../iotdb/metrics/metricsets/net/WindowsNetMetricManager.java | 4 +---
6 files changed, 23 insertions(+), 16 deletions(-)
diff --git a/integration-test/src/test/java/org/apache/iotdb/session/it/IoTDBConnectionsIT.java b/integration-test/src/test/java/org/apache/iotdb/session/it/IoTDBConnectionsIT.java
index 591980548e2..80aa854e66c 100644
--- a/integration-test/src/test/java/org/apache/iotdb/session/it/IoTDBConnectionsIT.java
+++ b/integration-test/src/test/java/org/apache/iotdb/session/it/IoTDBConnectionsIT.java
@@ -341,7 +341,6 @@ public class IoTDBConnectionsIT {
TimeUnit.SECONDS.sleep(1);
}
}
- TimeUnit.SECONDS.sleep(5);
}
@Test
diff --git a/integration-test/src/test/java/org/apache/iotdb/session/it/pool/SessionPoolIT.java b/integration-test/src/test/java/org/apache/iotdb/session/it/pool/SessionPoolIT.java
index f42d4237ea9..648a6918331 100644
--- a/integration-test/src/test/java/org/apache/iotdb/session/it/pool/SessionPoolIT.java
+++ b/integration-test/src/test/java/org/apache/iotdb/session/it/pool/SessionPoolIT.java
@@ -268,7 +268,6 @@ public class SessionPoolIT {
.ensureNodeStatus(
Collections.singletonList(node), Collections.singletonList(NodeStatus.Running));
pool = EnvFactory.getEnv().getSessionPool(3);
- TimeUnit.SECONDS.sleep(5);
correctQuery(pool, DEFAULT_QUERY_TIMEOUT);
pool.close();
return;
@@ -354,7 +353,6 @@ public class SessionPoolIT {
EnvFactory.getEnv()
.ensureNodeStatus(
Collections.singletonList(node), Collections.singletonList(NodeStatus.Running));
- TimeUnit.SECONDS.sleep(5);
write10Data(pool, true);
pool.close();
}
diff --git a/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/disk/DiskMetrics.java b/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/disk/DiskMetrics.java
index c9c2b393cde..6811c8143d2 100644
--- a/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/disk/DiskMetrics.java
+++ b/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/disk/DiskMetrics.java
@@ -50,6 +50,17 @@ public class DiskMetrics implements IMetricSet {
@Override
public void bindTo(AbstractMetricService metricService) {
+ String os = System.getProperty("os.name").toLowerCase();
+ if (os.startsWith("windows")) {
+ Thread thread = new Thread(() -> bindTask(metricService), "Windows-Disk-Metric-Binder");
+ thread.setDaemon(true);
+ thread.start();
+ return;
+ }
+ bindTask(metricService);
+ }
+
+ private void bindTask(AbstractMetricService metricService) {
// metrics for disks
Set<String> diskIDs = diskMetricsManager.getDiskIds();
for (String diskID : diskIDs) {
diff --git a/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/disk/WindowsDiskMetricsManager.java b/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/disk/WindowsDiskMetricsManager.java
index b83e0c5aa17..a82b048f6db 100644
--- a/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/disk/WindowsDiskMetricsManager.java
+++ b/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/disk/WindowsDiskMetricsManager.java
@@ -106,7 +106,6 @@ public class WindowsDiskMetricsManager implements IDiskMetricsManager {
public WindowsDiskMetricsManager() {
processId = String.valueOf(MetricConfigDescriptor.getInstance().getMetricConfig().getPid());
- collectDiskId();
}
@Override
@@ -235,15 +234,6 @@ public class WindowsDiskMetricsManager implements IDiskMetricsManager {
return diskIdSet;
}
- private void collectDiskId() {
- Map<String, String[]> diskInfoMap = queryDiskInfo();
- if (diskInfoMap.isEmpty()) {
- return;
- }
- diskIdSet.clear();
- diskIdSet.addAll(diskInfoMap.keySet());
- }
-
private Map<String, Double> toKbMap(Map<String, Long> source) {
Map<String, Double> result = new HashMap<>(source.size());
for (Map.Entry<String, Long> entry : source.entrySet()) {
diff --git a/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/net/NetMetrics.java b/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/net/NetMetrics.java
index 3561fd7997c..49c98702ad7 100644
--- a/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/net/NetMetrics.java
+++ b/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/net/NetMetrics.java
@@ -41,6 +41,17 @@ public class NetMetrics implements IMetricSet {
@Override
public void bindTo(AbstractMetricService metricService) {
+ String os = System.getProperty("os.name").toLowerCase();
+ if (os.startsWith("windows")) {
+ Thread thread = new Thread(() -> bindTask(metricService), "Windows-Net-Metric-Binder");
+ thread.setDaemon(true);
+ thread.start();
+ return;
+ }
+ bindTask(metricService);
+ }
+
+ private void bindTask(AbstractMetricService metricService) {
// metrics for net
Set<String> ifaceSet = netMetricManager.getIfaceSet();
for (String iface : ifaceSet) {
diff --git a/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/net/WindowsNetMetricManager.java b/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/net/WindowsNetMetricManager.java
index 7fb82ffaa0d..62991048cab 100644
--- a/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/net/WindowsNetMetricManager.java
+++ b/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/net/WindowsNetMetricManager.java
@@ -56,9 +56,7 @@ public class WindowsNetMetricManager implements INetMetricManager {
private int connectionNum = 0;
- public WindowsNetMetricManager() {
- checkUpdate();
- }
+ public WindowsNetMetricManager() {}
@Override
public Set<String> getIfaceSet() {