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/04/28 12:16:23 UTC
[iotdb] 02/02: fix code smell
This is an automated email from the ASF dual-hosted git repository.
marklau99 pushed a commit to branch optimize-metrics
in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit a903c52165bf53953c2f30fd4a082534dea7d44b
Author: Liu Xuxin <li...@outlook.com>
AuthorDate: Fri Apr 28 17:58:09 2023 +0800
fix code smell
---
.../metrics/metricsets/jvm/JvmThreadMetrics.java | 6 +++---
.../performer/impl/FastCompactionPerformer.java | 2 --
.../performer/impl/ReadPointCompactionPerformer.java | 1 -
.../readchunk/AlignedSeriesCompactionExecutor.java | 1 -
.../apache/iotdb/db/service/metrics/FileMetrics.java | 20 ++++++++++++++++++--
5 files changed, 21 insertions(+), 9 deletions(-)
diff --git a/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/jvm/JvmThreadMetrics.java b/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/jvm/JvmThreadMetrics.java
index 1dfcdcbb93c..3ecf6f35fb9 100644
--- a/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/jvm/JvmThreadMetrics.java
+++ b/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/jvm/JvmThreadMetrics.java
@@ -28,7 +28,7 @@ import java.lang.management.ManagementFactory;
import java.lang.management.ThreadInfo;
import java.lang.management.ThreadMXBean;
import java.util.Arrays;
-import java.util.HashMap;
+import java.util.EnumMap;
import java.util.List;
import java.util.Map;
@@ -36,8 +36,8 @@ import java.util.Map;
public class JvmThreadMetrics implements IMetricSet {
private static long lastUpdateTime = 0L;
private static final long UPDATE_INTERVAL = 10_000L;
- private static Map<Thread.State, Integer> threadStateCountMap =
- new HashMap<>(Thread.State.values().length + 1, 1.0f);
+ private static final Map<Thread.State, Integer> threadStateCountMap =
+ new EnumMap<>(Thread.State.class);
@Override
public void bindTo(AbstractMetricService metricService) {
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/performer/impl/FastCompactionPerformer.java b/server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/performer/impl/FastCompactionPerformer.java
index d029122f0d1..9c451864e68 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/performer/impl/FastCompactionPerformer.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/performer/impl/FastCompactionPerformer.java
@@ -81,8 +81,6 @@ public class FastCompactionPerformer
private boolean isCrossCompaction;
- private long tempFileSize = 0L;
-
public FastCompactionPerformer(
List<TsFileResource> seqFiles,
List<TsFileResource> unseqFiles,
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/performer/impl/ReadPointCompactionPerformer.java b/server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/performer/impl/ReadPointCompactionPerformer.java
index 8384916b92a..f8299744585 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/performer/impl/ReadPointCompactionPerformer.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/performer/impl/ReadPointCompactionPerformer.java
@@ -75,7 +75,6 @@ public class ReadPointCompactionPerformer
private CompactionTaskSummary summary;
private List<TsFileResource> targetFiles = Collections.emptyList();
- private long tempFileSize = 0L;
public ReadPointCompactionPerformer(
List<TsFileResource> seqFiles,
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/utils/executor/readchunk/AlignedSeriesCompactionExecutor.java b/server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/utils/executor/readchunk/AlignedSeriesCompactionExecutor.java
index 2ec407ad29e..ce380957cd8 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/utils/executor/readchunk/AlignedSeriesCompactionExecutor.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/utils/executor/readchunk/AlignedSeriesCompactionExecutor.java
@@ -131,7 +131,6 @@ public class AlignedSeriesCompactionExecutor {
}
public void execute() throws IOException {
- long originTempFileSize = writer.getPos();
while (readerAndChunkMetadataList.size() > 0) {
Pair<TsFileSequenceReader, List<AlignedChunkMetadata>> readerListPair =
readerAndChunkMetadataList.removeFirst();
diff --git a/server/src/main/java/org/apache/iotdb/db/service/metrics/FileMetrics.java b/server/src/main/java/org/apache/iotdb/db/service/metrics/FileMetrics.java
index 563627fa9e4..cf590e1ae20 100644
--- a/server/src/main/java/org/apache/iotdb/db/service/metrics/FileMetrics.java
+++ b/server/src/main/java/org/apache/iotdb/db/service/metrics/FileMetrics.java
@@ -35,6 +35,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.BufferedReader;
+import java.io.File;
import java.io.IOException;
import java.io.InputStreamReader;
@@ -48,6 +49,13 @@ public class FileMetrics implements IMetricSet {
private final Runtime runtime = Runtime.getRuntime();
private String[] getOpenFileNumberCommand;
+ @SuppressWarnings("squid:S1075")
+ private String fileHandlerCntPathInLinux = "/proc/%s/fd";
+
+ public FileMetrics() {
+ fileHandlerCntPathInLinux = String.format(fileHandlerCntPathInLinux, METRIC_CONFIG.getPid());
+ }
+
@Override
public void bindTo(AbstractMetricService metricService) {
bindTsFileMetrics(metricService);
@@ -245,9 +253,17 @@ public class FileMetrics implements IMetricSet {
}
private long getOpenFileHandlersNumber() {
+ long fdCount = 0;
try {
- if ((METRIC_CONFIG.getSystemType() == SystemType.LINUX
- || METRIC_CONFIG.getSystemType() == SystemType.MAC)
+ if (METRIC_CONFIG.getSystemType() == SystemType.LINUX) {
+ // count the fd in the system directory instead of
+ // calling runtime.exec() which could be much slower
+ File fdDir = new File(fileHandlerCntPathInLinux);
+ if (fdDir.exists()) {
+ File[] fds = fdDir.listFiles();
+ fdCount = fds == null ? 0 : fds.length;
+ }
+ } else if ((METRIC_CONFIG.getSystemType() == SystemType.MAC)
&& METRIC_CONFIG.getPid().length() != 0) {
Process process = runtime.exec(getOpenFileNumberCommand);
StringBuilder result = new StringBuilder();