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 2019/06/23 08:39:04 UTC

[incubator-iotdb] branch feature_async_close_tsfile updated: fix file name comparing method

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

qiaojialin pushed a commit to branch feature_async_close_tsfile
in repository https://gitbox.apache.org/repos/asf/incubator-iotdb.git


The following commit(s) were added to refs/heads/feature_async_close_tsfile by this push:
     new 91bef5f  fix file name comparing method
91bef5f is described below

commit 91bef5f80fc3b6cc86980a55c3a0608d7abd7424
Author: qiaojialin <64...@qq.com>
AuthorDate: Sun Jun 23 16:39:02 2019 +0800

    fix file name comparing method
---
 .../db/engine/filenodeV2/FileNodeProcessorV2.java  | 22 ++++++++++++++++------
 1 file changed, 16 insertions(+), 6 deletions(-)

diff --git a/iotdb/src/main/java/org/apache/iotdb/db/engine/filenodeV2/FileNodeProcessorV2.java b/iotdb/src/main/java/org/apache/iotdb/db/engine/filenodeV2/FileNodeProcessorV2.java
index 1389c8b..d700f85 100755
--- a/iotdb/src/main/java/org/apache/iotdb/db/engine/filenodeV2/FileNodeProcessorV2.java
+++ b/iotdb/src/main/java/org/apache/iotdb/db/engine/filenodeV2/FileNodeProcessorV2.java
@@ -22,6 +22,7 @@ import java.io.File;
 import java.io.IOException;
 import java.nio.file.Paths;
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.Comparator;
 import java.util.HashMap;
 import java.util.List;
@@ -162,12 +163,8 @@ public class FileNodeProcessorV2 {
     recoverUnseqFiles(tsFiles);
   }
 
-  private static int getTsFileSerialNum(File tsFile) {
-    return Integer.parseInt(tsFile.getName().split("-")[1]);
-  }
-
   private void recoverSeqFiles(List<File> tsfiles) throws ProcessorException {
-    tsfiles.sort(Comparator.comparingInt(FileNodeProcessorV2::getTsFileSerialNum));
+    tsfiles.sort(new CompareFileName());
     for (File tsfile: tsfiles) {
       TsFileResourceV2 tsFileResource = new TsFileResourceV2(tsfile);
       sequenceFileList.add(tsFileResource);
@@ -177,7 +174,7 @@ public class FileNodeProcessorV2 {
   }
 
   private void recoverUnseqFiles(List<File> tsfiles) throws ProcessorException {
-    tsfiles.sort(Comparator.comparingInt(FileNodeProcessorV2::getTsFileSerialNum));
+    tsfiles.sort(new CompareFileName());
     for (File tsfile: tsfiles) {
       TsFileResourceV2 tsFileResource = new TsFileResourceV2(tsfile);
       unSequenceFileList.add(tsFileResource);
@@ -187,6 +184,19 @@ public class FileNodeProcessorV2 {
     }
   }
 
+  class CompareFileName implements Comparator<File> {
+
+    @Override
+    public int compare(File o1, File o2) {
+      String[] items1 = o1.getName().split("-");
+      String[] items2 = o2.getName().split("-");
+      if (Long.valueOf(items1[0]) - Long.valueOf(items2[0]) == 0) {
+        return  Long.compare(Long.valueOf(items1[1]), Long.valueOf(items2[1]));
+      } else {
+        return Long.compare(Long.valueOf(items1[0]), Long.valueOf(items2[0]));
+      }
+    }
+  }
 
   private FileSchema constructFileSchema(String storageGroupName) {
     List<MeasurementSchema> columnSchemaList;