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

heiming pushed a commit to branch tiered_storage
in repository https://gitbox.apache.org/repos/asf/iotdb.git


The following commit(s) were added to refs/heads/tiered_storage by this push:
     new 2a1caeb95c7 sort tsfiles when recovering
2a1caeb95c7 is described below

commit 2a1caeb95c7a80c232ced24a2cbdf1498aab193c
Author: HeimingZ <[email protected]>
AuthorDate: Thu May 25 20:24:00 2023 +0800

    sort tsfiles when recovering
---
 .../org/apache/iotdb/db/engine/migration/LocalMigrationTask.java     | 5 +++--
 .../org/apache/iotdb/db/engine/migration/RemoteMigrationTask.java    | 4 ++--
 .../java/org/apache/iotdb/db/engine/storagegroup/DataRegion.java     | 5 ++++-
 3 files changed, 9 insertions(+), 5 deletions(-)

diff --git 
a/server/src/main/java/org/apache/iotdb/db/engine/migration/LocalMigrationTask.java
 
b/server/src/main/java/org/apache/iotdb/db/engine/migration/LocalMigrationTask.java
index 5401ff61a42..3e2ed543471 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/engine/migration/LocalMigrationTask.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/engine/migration/LocalMigrationTask.java
@@ -50,7 +50,7 @@ public class LocalMigrationTask extends MigrationTask {
       migrateFile(srcResourceFile, destResourceFile);
     } catch (Exception e) {
       if (!tsFileResource.isDeleted()) {
-        logger.error("Fail to copy TsFile from local {} to local {}", srcFile, 
srcResourceFile);
+        logger.error("Fail to copy TsFile from local {} to local {}", srcFile, 
srcResourceFile, e);
       }
       cleanup();
       return;
@@ -71,7 +71,8 @@ public class LocalMigrationTask extends MigrationTask {
       tsFileResource.setStatus(TsFileResourceStatus.NORMAL);
     } catch (Exception e) {
       if (!tsFileResource.isDeleted()) {
-        logger.error("Fail to copy mods file from local {} to local {}", 
srcModsFile, destModsFile);
+        logger.error(
+            "Fail to copy mods file from local {} to local {}", srcModsFile, 
destModsFile, e);
       }
       cleanup();
       return;
diff --git 
a/server/src/main/java/org/apache/iotdb/db/engine/migration/RemoteMigrationTask.java
 
b/server/src/main/java/org/apache/iotdb/db/engine/migration/RemoteMigrationTask.java
index f567d04636a..8daffc92776 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/engine/migration/RemoteMigrationTask.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/engine/migration/RemoteMigrationTask.java
@@ -49,7 +49,7 @@ public class RemoteMigrationTask extends MigrationTask {
       migrateFile(srcResourceFile, destResourceFile);
     } catch (Exception e) {
       if (!tsFileResource.isDeleted()) {
-        logger.error("Fail to copy TsFile from local {} to remote {}", 
srcFile, srcResourceFile);
+        logger.error("Fail to copy TsFile from local {} to remote {}", 
srcFile, srcResourceFile, e);
       }
       cleanup();
       return;
@@ -67,7 +67,7 @@ public class RemoteMigrationTask extends MigrationTask {
       tsFileResource.setStatus(TsFileResourceStatus.NORMAL_ON_REMOTE);
     } catch (Exception e) {
       if (!tsFileResource.isDeleted()) {
-        logger.error("Fail to delete local TsFile {}", srcFile);
+        logger.error("Fail to delete local TsFile {}", srcFile, e);
       }
     } finally {
       tsFileResource.writeUnlock();
diff --git 
a/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/DataRegion.java 
b/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/DataRegion.java
index 21d0b1b3fc5..8ff87ee8230 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/DataRegion.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/DataRegion.java
@@ -751,9 +751,12 @@ public class DataRegion implements IDataRegionForQuery {
       }
     }
 
+    List<File> sortedFiles = new 
ArrayList<>(tsFilePartitionPath2File.values());
+    sortedFiles.sort(this::compareFileName);
+
     long currentTime = System.currentTimeMillis();
     List<TsFileResource> ret = new ArrayList<>();
-    for (File f : tsFilePartitionPath2File.values()) {
+    for (File f : sortedFiles) {
       checkTsFileTime(f, currentTime);
       ret.add(new TsFileResource(f));
     }

Reply via email to