You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ji...@apache.org on 2019/06/21 13:31:18 UTC

[incubator-iotdb] branch feature_async_close_tsfile updated: some refinements

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

jiangtian 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 d46227c  some refinements
d46227c is described below

commit d46227c18d5dd787334cbbaab80a976fcc5031a9
Author: 江天 <jt...@163.com>
AuthorDate: Fri Jun 21 21:29:13 2019 +0800

    some refinements
---
 .../java/org/apache/iotdb/db/writelog/recover/LogReplayer.java    | 8 ++++++++
 .../iotdb/db/writelog/recover/SeqTsFileRecoverPerformer.java      | 5 +++++
 .../iotdb/db/writelog/recover/UnseqTsFileRecoverPerformer.java    | 1 +
 3 files changed, 14 insertions(+)

diff --git a/iotdb/src/main/java/org/apache/iotdb/db/writelog/recover/LogReplayer.java b/iotdb/src/main/java/org/apache/iotdb/db/writelog/recover/LogReplayer.java
index 822ada6..75e65c2 100644
--- a/iotdb/src/main/java/org/apache/iotdb/db/writelog/recover/LogReplayer.java
+++ b/iotdb/src/main/java/org/apache/iotdb/db/writelog/recover/LogReplayer.java
@@ -31,6 +31,7 @@ import org.apache.iotdb.db.exception.ProcessorException;
 import org.apache.iotdb.db.qp.physical.PhysicalPlan;
 import org.apache.iotdb.db.qp.physical.crud.DeletePlan;
 import org.apache.iotdb.db.qp.physical.crud.InsertPlan;
+import org.apache.iotdb.db.qp.physical.crud.UpdatePlan;
 import org.apache.iotdb.db.writelog.io.ILogReader;
 import org.apache.iotdb.db.writelog.manager.MultiFileLogNodeManager;
 import org.apache.iotdb.db.writelog.node.WriteLogNode;
@@ -90,6 +91,8 @@ public class LogReplayer {
           replayInsert((InsertPlan) plan);
         } else if (plan instanceof DeletePlan) {
           replayDelete((DeletePlan) plan);
+        } else if (plan instanceof UpdatePlan) {
+          replayUpdate((UpdatePlan) plan);
         }
       }
     } catch (IOException e) {
@@ -126,4 +129,9 @@ public class LogReplayer {
     }
     recoverMemTable.insert(tsRecord);
   }
+
+  private void replayUpdate(UpdatePlan updatePlan) {
+    // TODO: support update
+    throw new UnsupportedOperationException("Update not supported");
+  }
 }
diff --git a/iotdb/src/main/java/org/apache/iotdb/db/writelog/recover/SeqTsFileRecoverPerformer.java b/iotdb/src/main/java/org/apache/iotdb/db/writelog/recover/SeqTsFileRecoverPerformer.java
index d7e31e2..339a39a 100644
--- a/iotdb/src/main/java/org/apache/iotdb/db/writelog/recover/SeqTsFileRecoverPerformer.java
+++ b/iotdb/src/main/java/org/apache/iotdb/db/writelog/recover/SeqTsFileRecoverPerformer.java
@@ -74,6 +74,7 @@ public class SeqTsFileRecoverPerformer {
     if (!insertFile.exists()) {
       return;
     }
+    // remove corrupted part of the TsFile
     NativeRestorableIOWriter restorableTsFileIOWriter = recoverFile(insertFile);
 
     // due to failure, the last ChunkGroup may contain the same data as the WALs, so the time
@@ -85,16 +86,19 @@ public class SeqTsFileRecoverPerformer {
       }
     }
 
+    // redo logs
     logReplayer.replayLogs();
     if (recoverMemTable.isEmpty()) {
       removeTruncatePosition(insertFile);
       return;
     }
 
+    // flush logs
     MemTableFlushTask tableFlushTask = new MemTableFlushTask(restorableTsFileIOWriter,
         logNodePrefix, 0, (a,b) -> {});
     tableFlushTask.flushMemTable(fileSchema, recoverMemTable, versionController.nextVersion());
 
+    // close file
     try {
       restorableTsFileIOWriter.endFile(fileSchema);
     } catch (IOException e) {
@@ -103,6 +107,7 @@ public class SeqTsFileRecoverPerformer {
 
     removeTruncatePosition(insertFile);
 
+    // clean logs
     try {
       MultiFileLogNodeManager.getInstance().deleteNode(logNodePrefix + new File(insertFilePath).getName());
     } catch (IOException e) {
diff --git a/iotdb/src/main/java/org/apache/iotdb/db/writelog/recover/UnseqTsFileRecoverPerformer.java b/iotdb/src/main/java/org/apache/iotdb/db/writelog/recover/UnseqTsFileRecoverPerformer.java
index ea577fa..fe6aa50 100644
--- a/iotdb/src/main/java/org/apache/iotdb/db/writelog/recover/UnseqTsFileRecoverPerformer.java
+++ b/iotdb/src/main/java/org/apache/iotdb/db/writelog/recover/UnseqTsFileRecoverPerformer.java
@@ -58,6 +58,7 @@ public class UnseqTsFileRecoverPerformer {
     LogReplayer replayer = new LogReplayer(logNodePrefix, insertFilePath,
         resource.getModificationFile(), resource.getVersionController(), null,
         fileSchema, memTable);
+
     replayer.replayLogs();
     if (memTable.isEmpty()) {
       return;