You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ma...@apache.org on 2023/02/13 11:33:32 UTC

[iotdb] branch IOTDB-5517 updated: use double to maintain the precision

This is an automated email from the ASF dual-hosted git repository.

marklau99 pushed a commit to branch IOTDB-5517
in repository https://gitbox.apache.org/repos/asf/iotdb.git


The following commit(s) were added to refs/heads/IOTDB-5517 by this push:
     new 71a7798503 use double to maintain the precision
71a7798503 is described below

commit 71a7798503a054ce27ad77bc6196baa15d23a75d
Author: Liu Xuxin <li...@outlook.com>
AuthorDate: Mon Feb 13 19:33:25 2023 +0800

    use double to maintain the precision
---
 .../metrics/io/LinuxDiskMetricsManager.java        | 34 +++++++++++++---------
 1 file changed, 20 insertions(+), 14 deletions(-)

diff --git a/server/src/main/java/org/apache/iotdb/db/service/metrics/io/LinuxDiskMetricsManager.java b/server/src/main/java/org/apache/iotdb/db/service/metrics/io/LinuxDiskMetricsManager.java
index a16e8ad213..c484d89c98 100644
--- a/server/src/main/java/org/apache/iotdb/db/service/metrics/io/LinuxDiskMetricsManager.java
+++ b/server/src/main/java/org/apache/iotdb/db/service/metrics/io/LinuxDiskMetricsManager.java
@@ -102,7 +102,8 @@ public class LinuxDiskMetricsManager extends AbstractDiskMetricsManager {
     Map<String, Long> readDataMap = new HashMap<>();
     for (Map.Entry<String, Long> entry : incrementReadSectorCountForDisk.entrySet()) {
       // the data size in each sector is 512 byte
-      readDataMap.put(entry.getKey(), entry.getValue() * 512L / 1024L / updateInterval * 1000L);
+      readDataMap.put(
+          entry.getKey(), (long) (entry.getValue() * 512.0 / 1024.0 / updateInterval * 1000.0));
     }
     return readDataMap;
   }
@@ -113,7 +114,8 @@ public class LinuxDiskMetricsManager extends AbstractDiskMetricsManager {
     Map<String, Long> writeDataMap = new HashMap<>();
     for (Map.Entry<String, Long> entry : incrementWriteSectorCountForDisk.entrySet()) {
       // the data size in each sector is 512 byte
-      writeDataMap.put(entry.getKey(), entry.getValue() * 512L / 1024L / updateInterval * 1000L);
+      writeDataMap.put(
+          entry.getKey(), (long) (entry.getValue() * 512.0 / 1024.0 / updateInterval * 1000.0));
     }
     return writeDataMap;
   }
@@ -123,7 +125,7 @@ public class LinuxDiskMetricsManager extends AbstractDiskMetricsManager {
     checkUpdate();
     Map<String, Integer> incrementMapPerSecond = new HashMap<>();
     for (Map.Entry<String, Integer> entry : incrementReadOperationCountForDisk.entrySet()) {
-      incrementMapPerSecond.put(entry.getKey(), (int) (entry.getValue() / updateInterval * 1000L));
+      incrementMapPerSecond.put(entry.getKey(), (int) (entry.getValue() * 1000.0 / updateInterval));
     }
     return incrementMapPerSecond;
   }
@@ -132,7 +134,7 @@ public class LinuxDiskMetricsManager extends AbstractDiskMetricsManager {
   public Map<String, Integer> getWriteOperationCountForDisk() {
     Map<String, Integer> incrementMapPerSecond = new HashMap<>();
     for (Map.Entry<String, Integer> entry : incrementWriteOperationCountForDisk.entrySet()) {
-      incrementMapPerSecond.put(entry.getKey(), (int) (entry.getValue() / updateInterval * 1000L));
+      incrementMapPerSecond.put(entry.getKey(), (int) (entry.getValue() * 1000.0 / updateInterval));
     }
     return incrementMapPerSecond;
   }
@@ -141,7 +143,8 @@ public class LinuxDiskMetricsManager extends AbstractDiskMetricsManager {
   public Map<String, Long> getReadCostTimeForDisk() {
     Map<String, Long> incrementMapPerSecond = new HashMap<>();
     for (Map.Entry<String, Long> entry : incrementReadTimeCostForDisk.entrySet()) {
-      incrementMapPerSecond.put(entry.getKey(), entry.getValue() / updateInterval * 1000L);
+      incrementMapPerSecond.put(
+          entry.getKey(), (long) (entry.getValue() * 1000.0 / updateInterval));
     }
     return incrementMapPerSecond;
   }
@@ -150,7 +153,8 @@ public class LinuxDiskMetricsManager extends AbstractDiskMetricsManager {
   public Map<String, Long> getWriteCostTimeForDisk() {
     Map<String, Long> incrementMapPerSecond = new HashMap<>();
     for (Map.Entry<String, Long> entry : incrementWriteTimeCostForDisk.entrySet()) {
-      incrementMapPerSecond.put(entry.getKey(), entry.getValue() / updateInterval * 1000L);
+      incrementMapPerSecond.put(
+          entry.getKey(), (long) (entry.getValue() * 1000.0 / updateInterval));
     }
     return incrementMapPerSecond;
   }
@@ -208,7 +212,8 @@ public class LinuxDiskMetricsManager extends AbstractDiskMetricsManager {
   public Map<String, Long> getMergedWriteOperationForDisk() {
     Map<String, Long> incrementMapPerMinute = new HashMap<>();
     for (Map.Entry<String, Long> entry : incrementMergedWriteCountForDisk.entrySet()) {
-      incrementMapPerMinute.put(entry.getKey(), entry.getValue() / updateInterval * 1000L);
+      incrementMapPerMinute.put(
+          entry.getKey(), (long) (entry.getValue() * 1000.0 / updateInterval));
     }
     return incrementMapPerMinute;
   }
@@ -217,39 +222,40 @@ public class LinuxDiskMetricsManager extends AbstractDiskMetricsManager {
   public Map<String, Long> getMergedReadOperationForDisk() {
     Map<String, Long> incrementMapPerMinute = new HashMap<>();
     for (Map.Entry<String, Long> entry : incrementMergedReadCountForDisk.entrySet()) {
-      incrementMapPerMinute.put(entry.getKey(), entry.getValue() / updateInterval * 1000L);
+      incrementMapPerMinute.put(
+          entry.getKey(), (long) (entry.getValue() * 1000.0 / updateInterval));
     }
     return incrementMapPerMinute;
   }
 
   @Override
   public long getActualReadDataSizeForProcess() {
-    return incrementReallyReadSizeForProcess / updateInterval * 1000L / 1024L;
+    return (long) (incrementReallyReadSizeForProcess * 1000.0 / updateInterval / 1024);
   }
 
   @Override
   public long getActualWriteDataSizeForProcess() {
-    return incrementReallyWriteSizeForProcess / updateInterval * 1000L / 1024L;
+    return (long) (incrementReallyWriteSizeForProcess * 1000.0 / updateInterval / 1024);
   }
 
   @Override
   public long getReadOpsCountForProcess() {
-    return incrementReadOpsCountForProcess / updateInterval * 1000L;
+    return (long) (incrementReadOpsCountForProcess * 1000.0 / updateInterval);
   }
 
   @Override
   public long getWriteOpsCountForProcess() {
-    return incrementWriteOpsCountForProcess / updateInterval * 1000L;
+    return (long) (incrementWriteOpsCountForProcess * 1000.0 / updateInterval);
   }
 
   @Override
   public long getAttemptReadSizeForProcess() {
-    return incrementAttemptReadSizeForProcess / 1024L / updateInterval * 1000L;
+    return (long) (incrementAttemptReadSizeForProcess / 1024.0 / updateInterval * 1000);
   }
 
   @Override
   public long getAttemptWriteSizeForProcess() {
-    return incrementAttemptWriteSizeForProcess / 1024L / updateInterval * 1000L;
+    return (long) (incrementAttemptWriteSizeForProcess / 1024.0 / updateInterval * 1000);
   }
 
   @Override