You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by xi...@apache.org on 2022/12/17 09:51:53 UTC
[iotdb] 02/02: optimize the way of selector
This is an automated email from the ASF dual-hosted git repository.
xingtanzjr pushed a commit to branch compaction_refine
in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 737dfb06339f5c5a013ddf310106b581ac8d49a5
Author: Jinrui.Zhang <xi...@gmail.com>
AuthorDate: Sat Dec 17 17:51:41 2022 +0800
optimize the way of selector
---
.../sizetiered/SizeTieredCompactionSelector.java | 21 +++++++++------------
1 file changed, 9 insertions(+), 12 deletions(-)
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/compaction/inner/sizetiered/SizeTieredCompactionSelector.java b/server/src/main/java/org/apache/iotdb/db/engine/compaction/inner/sizetiered/SizeTieredCompactionSelector.java
index f8d60a2fe1..d1e4586f2c 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/compaction/inner/sizetiered/SizeTieredCompactionSelector.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/compaction/inner/sizetiered/SizeTieredCompactionSelector.java
@@ -28,7 +28,6 @@ import org.apache.iotdb.db.engine.storagegroup.TsFileManager;
import org.apache.iotdb.db.engine.storagegroup.TsFileNameGenerator;
import org.apache.iotdb.db.engine.storagegroup.TsFileResource;
import org.apache.iotdb.db.engine.storagegroup.TsFileResourceStatus;
-import org.apache.iotdb.tsfile.utils.Pair;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -85,22 +84,19 @@ public class SizeTieredCompactionSelector
* files to be compacted is found on this layer, it will return false (indicating that it will no
* longer search for higher layers), otherwise it will return true.
*
- * @param level the level to be searched
- * each batch
+ * @param level the level to be searched each batch
* @return return whether to continue the search to higher levels
* @throws IOException
*/
- private List<InnerCompactionCandidate> selectLevelTask(List<TsFileResource> tsFileResources, int level)
- throws IOException {
+ private List<InnerCompactionCandidate> selectLevelTask(
+ List<TsFileResource> tsFileResources, int level) throws IOException {
List<InnerCompactionCandidate> result = new ArrayList<>();
- //sort TsFileResources by inner level in ascending
-// tsFileResources.sort(new TsFileResourceInnerLevelComparator());
InnerCompactionCandidate candidate = new InnerCompactionCandidate();
for (TsFileResource currentFile : tsFileResources) {
if (tsFileShouldBeSkipped(currentFile, level)) {
+ candidate = new InnerCompactionCandidate();
continue;
}
- // 为什么 ?
if (currentFile.getStatus() != TsFileResourceStatus.CLOSED) {
candidate = new InnerCompactionCandidate();
continue;
@@ -127,10 +123,12 @@ public class SizeTieredCompactionSelector
}
private boolean candidateSatisfied(InnerCompactionCandidate candidate) {
- return candidate.getFileCount() >= config.getTargetCompactionFileSize() || candidate.getTotalFileSize() >= config.getMaxInnerCompactionCandidateFileNum();
+ return candidate.getTotalFileSize() >= config.getTargetCompactionFileSize()
+ || candidate.getFileCount() >= config.getMaxInnerCompactionCandidateFileNum();
}
- private boolean tsFileShouldBeSkipped(TsFileResource tsFileResource, int level) throws IOException {
+ private boolean tsFileShouldBeSkipped(TsFileResource tsFileResource, int level)
+ throws IOException {
TsFileNameGenerator.TsFileName currentFileName =
TsFileNameGenerator.getTsFileName(tsFileResource.getTsFile().getName());
return currentFileName.getInnerCompactionCnt() != level;
@@ -181,8 +179,7 @@ public class SizeTieredCompactionSelector
return maxLevel;
}
- private class SizeTieredCompactionTaskComparator
- implements Comparator<InnerCompactionCandidate> {
+ private class SizeTieredCompactionTaskComparator implements Comparator<InnerCompactionCandidate> {
@Override
public int compare(InnerCompactionCandidate o1, InnerCompactionCandidate o2) {