You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by qi...@apache.org on 2022/11/26 01:08:46 UTC
[iotdb] branch master updated: [IOTDB-5004] [Metrics] Fix the seq file size in grafana is inconsistent with the actual query (#8177)
This is an automated email from the ASF dual-hosted git repository.
qiaojialin 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 816b99aba8 [IOTDB-5004] [Metrics] Fix the seq file size in grafana is inconsistent with the actual query (#8177)
816b99aba8 is described below
commit 816b99aba857d5c841078661e824fc21c34a85f8
Author: Liu Xuxin <37...@users.noreply.github.com>
AuthorDate: Sat Nov 26 09:08:39 2022 +0800
[IOTDB-5004] [Metrics] Fix the seq file size in grafana is inconsistent with the actual query (#8177)
---
.../apache/iotdb/db/engine/TsFileMetricManager.java | 6 +++---
.../compaction/cross/CrossSpaceCompactionTask.java | 19 ++++++++++---------
.../compaction/inner/InnerSpaceCompactionTask.java | 9 ++++++---
3 files changed, 19 insertions(+), 15 deletions(-)
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/TsFileMetricManager.java b/server/src/main/java/org/apache/iotdb/db/engine/TsFileMetricManager.java
index ee90a60ed3..afc6018e43 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/TsFileMetricManager.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/TsFileMetricManager.java
@@ -48,13 +48,13 @@ public class TsFileMetricManager {
}
}
- public void deleteFile(long size, boolean seq) {
+ public void deleteFile(long size, boolean seq, int num) {
if (seq) {
seqFileSize.getAndAdd(-size);
- seqFileNum.getAndAdd(-1);
+ seqFileNum.getAndAdd(-num);
} else {
unseqFileSize.getAndAdd(-size);
- unseqFileNum.getAndAdd(-1);
+ unseqFileNum.getAndAdd(-num);
}
}
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/compaction/cross/CrossSpaceCompactionTask.java b/server/src/main/java/org/apache/iotdb/db/engine/compaction/cross/CrossSpaceCompactionTask.java
index a966c93f7f..2bb5dc69a5 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/compaction/cross/CrossSpaceCompactionTask.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/compaction/cross/CrossSpaceCompactionTask.java
@@ -168,15 +168,13 @@ public class CrossSpaceCompactionTask extends AbstractCompactionTask {
releaseReadAndLockWrite(selectedSequenceFiles);
releaseReadAndLockWrite(selectedUnsequenceFiles);
- deleteOldFiles(selectedSequenceFiles);
- deleteOldFiles(selectedUnsequenceFiles);
+ long sequenceFileSize = deleteOldFiles(selectedSequenceFiles);
+ long unsequenceFileSize = deleteOldFiles(selectedUnsequenceFiles);
+ TsFileMetricManager.getInstance()
+ .deleteFile(sequenceFileSize, true, selectedSequenceFiles.size());
+ TsFileMetricManager.getInstance()
+ .deleteFile(unsequenceFileSize, false, selectedUnsequenceFiles.size());
- for (TsFileResource seqResource : selectedSequenceFiles) {
- TsFileMetricManager.getInstance().deleteFile(seqResource.getTsFileSize(), true);
- }
- for (TsFileResource unseqResource : selectedUnsequenceFiles) {
- TsFileMetricManager.getInstance().deleteFile(unseqResource.getTsFileSize(), false);
- }
for (TsFileResource targetResource : targetTsfileResourceList) {
TsFileMetricManager.getInstance().addFile(targetResource.getTsFileSize(), true);
}
@@ -299,14 +297,17 @@ public class CrossSpaceCompactionTask extends AbstractCompactionTask {
selectedUnsequenceFiles.forEach(x -> x.setStatus(TsFileResourceStatus.CLOSED));
}
- private void deleteOldFiles(List<TsFileResource> tsFileResourceList) throws IOException {
+ private long deleteOldFiles(List<TsFileResource> tsFileResourceList) throws IOException {
+ long totalSize = 0;
for (TsFileResource tsFileResource : tsFileResourceList) {
FileReaderManager.getInstance().closeFileAndRemoveReader(tsFileResource.getTsFilePath());
+ totalSize += tsFileResource.getTsFileSize();
tsFileResource.remove();
LOGGER.info(
"[CrossSpaceCompaction] Delete TsFile :{}.",
tsFileResource.getTsFile().getAbsolutePath());
}
+ return totalSize;
}
private void releaseReadAndLockWrite(List<TsFileResource> tsFileResourceList) {
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/compaction/inner/InnerSpaceCompactionTask.java b/server/src/main/java/org/apache/iotdb/db/engine/compaction/inner/InnerSpaceCompactionTask.java
index 13e68bdea8..2c2181a3ee 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/compaction/inner/InnerSpaceCompactionTask.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/compaction/inner/InnerSpaceCompactionTask.java
@@ -203,13 +203,16 @@ public class InnerSpaceCompactionTask extends AbstractCompactionTask {
storageGroupName,
dataRegionId);
// delete the old files
+ long totalSizeOfDeletedFile = 0L;
+ for (TsFileResource resource : selectedTsFileResourceList) {
+ totalSizeOfDeletedFile += resource.getTsFileSize();
+ }
CompactionUtils.deleteTsFilesInDisk(
selectedTsFileResourceList, storageGroupName + "-" + dataRegionId);
CompactionUtils.deleteModificationForSourceFile(
selectedTsFileResourceList, storageGroupName + "-" + dataRegionId);
- for (TsFileResource resource : selectedTsFileResourceList) {
- TsFileMetricManager.getInstance().deleteFile(resource.getTsFile().length(), sequence);
- }
+ TsFileMetricManager.getInstance()
+ .deleteFile(totalSizeOfDeletedFile, sequence, selectedTsFileResourceList.size());
// inner space compaction task has only one target file
if (targetTsFileList.size() > 0) {
// if the target tsfile is empty file, it will be removed