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/14 11:49:53 UTC

[incubator-iotdb] branch feature_async_close_tsfile updated: fix tests

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 4e5cfde  fix tests
     new 3679d41  Merge branch 'feature_async_close_tsfile' of github.com:apache/incubator-iotdb into feature_async_close_tsfile
4e5cfde is described below

commit 4e5cfde0f535afef7a1a52272238a98df9832e2b
Author: 江天 <jt...@163.com>
AuthorDate: Fri Jun 14 19:47:15 2019 +0800

    fix tests
---
 .../db/engine/filenode/FileNodeProcessor.java      |   5 +-
 .../db/engine/overflow/io/OverflowProcessor.java   |   6 +-
 .../iotdb/db/writelog/io/MultiFileLogReader.java   |   2 +-
 .../memcontrol/OverflowFileSizeControlTest.java    |   4 +-
 .../memcontrol/OverflowMetaSizeControlTest.java    |   4 +-
 .../overflow/io/OverflowProcessorBenchmark.java    |   3 +-
 .../engine/overflow/io/OverflowProcessorTest.java  |   9 +-
 .../engine/overflow/io/OverflowResourceTest.java   |   4 +-
 .../org/apache/iotdb/db/writelog/RecoverTest.java  | 234 +++------------------
 .../iotdb/db/writelog/WriteLogNodeManagerTest.java |  40 ----
 .../apache/iotdb/db/writelog/WriteLogNodeTest.java |   8 +-
 11 files changed, 55 insertions(+), 264 deletions(-)

diff --git a/iotdb/src/main/java/org/apache/iotdb/db/engine/filenode/FileNodeProcessor.java b/iotdb/src/main/java/org/apache/iotdb/db/engine/filenode/FileNodeProcessor.java
index a7d7bec..cb9b183 100644
--- a/iotdb/src/main/java/org/apache/iotdb/db/engine/filenode/FileNodeProcessor.java
+++ b/iotdb/src/main/java/org/apache/iotdb/db/engine/filenode/FileNodeProcessor.java
@@ -467,7 +467,7 @@ public class FileNodeProcessor extends Processor implements IStatistic {
     parameters.put(FileNodeConstants.FILENODE_PROCESSOR_FLUSH_ACTION, fileNodeFlushAction);
 
     recoverUpdateTimeMap();
-    
+
     for (int i = 0; i < newFileNodes.size(); i++) {
       TsFileResource tsFile = newFileNodes.get(i);
       String baseDir = directories
@@ -486,6 +486,7 @@ public class FileNodeProcessor extends Processor implements IStatistic {
         throw new FileNodeProcessorException(e);
       }
     }
+    recoverUpdateTimeMap();
 
     // restore the overflow processor
     LOGGER.info("The filenode processor {} will recover the overflow processor.",
@@ -513,8 +514,6 @@ public class FileNodeProcessor extends Processor implements IStatistic {
     }
     // add file into index of file
     addAllFileIntoIndex(newFileNodes);
-
-    recoverUpdateTimeMap();
   }
 
   private void recoverUpdateTimeMap() {
diff --git a/iotdb/src/main/java/org/apache/iotdb/db/engine/overflow/io/OverflowProcessor.java b/iotdb/src/main/java/org/apache/iotdb/db/engine/overflow/io/OverflowProcessor.java
index 76e2ee3..7a0f1f7 100644
--- a/iotdb/src/main/java/org/apache/iotdb/db/engine/overflow/io/OverflowProcessor.java
+++ b/iotdb/src/main/java/org/apache/iotdb/db/engine/overflow/io/OverflowProcessor.java
@@ -35,6 +35,7 @@ import java.util.concurrent.Future;
 import java.util.concurrent.atomic.AtomicLong;
 import java.util.concurrent.locks.ReentrantLock;
 import org.apache.iotdb.db.conf.IoTDBConfig;
+import org.apache.iotdb.db.conf.IoTDBConstant;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.engine.Processor;
 import org.apache.iotdb.db.engine.bufferwrite.Action;
@@ -61,6 +62,7 @@ import org.apache.iotdb.db.query.context.QueryContext;
 import org.apache.iotdb.db.query.control.FileReaderManager;
 import org.apache.iotdb.db.utils.ImmediateFuture;
 import org.apache.iotdb.db.utils.MemUtils;
+import org.apache.iotdb.db.writelog.manager.MultiFileLogNodeManager;
 import org.apache.iotdb.db.writelog.node.WriteLogNode;
 import org.apache.iotdb.db.writelog.recover.LogReplayer;
 import org.apache.iotdb.tsfile.common.conf.TSFileConfig;
@@ -198,7 +200,9 @@ public class OverflowProcessor extends Processor {
     replayer.replayLogs();
     flushTask("recover flush", memTable, 0, (a,b) -> {});
     try {
-      getLogNode().delete();
+      WriteLogNode node = MultiFileLogNodeManager.getInstance().getNode(
+          workResource.logNodePrefix() + IoTDBConstant.OVERFLOW_LOG_NODE_SUFFIX);
+      node.delete();
     } catch (IOException e) {
       throw new ProcessorException(e);
     }
diff --git a/iotdb/src/main/java/org/apache/iotdb/db/writelog/io/MultiFileLogReader.java b/iotdb/src/main/java/org/apache/iotdb/db/writelog/io/MultiFileLogReader.java
index 562d189..2c25117 100644
--- a/iotdb/src/main/java/org/apache/iotdb/db/writelog/io/MultiFileLogReader.java
+++ b/iotdb/src/main/java/org/apache/iotdb/db/writelog/io/MultiFileLogReader.java
@@ -43,7 +43,7 @@ public class MultiFileLogReader implements ILogReader {
 
   @Override
   public boolean hasNext() throws IOException {
-    if (files == null) {
+    if (files == null || files.length == 0) {
       return false;
     }
     if (currentReader == null) {
diff --git a/iotdb/src/test/java/org/apache/iotdb/db/engine/memcontrol/OverflowFileSizeControlTest.java b/iotdb/src/test/java/org/apache/iotdb/db/engine/memcontrol/OverflowFileSizeControlTest.java
index d5cdabf..48557b7 100644
--- a/iotdb/src/test/java/org/apache/iotdb/db/engine/memcontrol/OverflowFileSizeControlTest.java
+++ b/iotdb/src/test/java/org/apache/iotdb/db/engine/memcontrol/OverflowFileSizeControlTest.java
@@ -33,6 +33,7 @@ import org.apache.iotdb.db.engine.bufferwrite.FileNodeConstants;
 import org.apache.iotdb.db.engine.version.SysTimeVersionController;
 import org.apache.iotdb.db.engine.overflow.io.OverflowProcessor;
 import org.apache.iotdb.db.exception.OverflowProcessorException;
+import org.apache.iotdb.db.exception.ProcessorException;
 import org.apache.iotdb.db.utils.EnvironmentUtils;
 import org.apache.iotdb.db.utils.FileSchemaUtils;
 import org.apache.iotdb.db.utils.MemUtils;
@@ -114,7 +115,8 @@ public class OverflowFileSizeControlTest {
   }
 
   @Test
-  public void testInsert() throws InterruptedException, IOException, WriteProcessException {
+  public void testInsert()
+      throws InterruptedException, IOException, WriteProcessException, ProcessorException {
     if (skip) {
       return;
     }
diff --git a/iotdb/src/test/java/org/apache/iotdb/db/engine/memcontrol/OverflowMetaSizeControlTest.java b/iotdb/src/test/java/org/apache/iotdb/db/engine/memcontrol/OverflowMetaSizeControlTest.java
index c687c1d..56afc32 100644
--- a/iotdb/src/test/java/org/apache/iotdb/db/engine/memcontrol/OverflowMetaSizeControlTest.java
+++ b/iotdb/src/test/java/org/apache/iotdb/db/engine/memcontrol/OverflowMetaSizeControlTest.java
@@ -33,6 +33,7 @@ import org.apache.iotdb.db.engine.bufferwrite.FileNodeConstants;
 import org.apache.iotdb.db.engine.version.SysTimeVersionController;
 import org.apache.iotdb.db.engine.overflow.io.OverflowProcessor;
 import org.apache.iotdb.db.exception.OverflowProcessorException;
+import org.apache.iotdb.db.exception.ProcessorException;
 import org.apache.iotdb.db.utils.EnvironmentUtils;
 import org.apache.iotdb.db.utils.FileSchemaUtils;
 import org.apache.iotdb.db.utils.MemUtils;
@@ -114,7 +115,8 @@ public class OverflowMetaSizeControlTest {
   }
 
   @Test
-  public void testInsert() throws InterruptedException, IOException, WriteProcessException {
+  public void testInsert()
+      throws InterruptedException, IOException, WriteProcessException, ProcessorException {
     if (skip) {
       return;
     }
diff --git a/iotdb/src/test/java/org/apache/iotdb/db/engine/overflow/io/OverflowProcessorBenchmark.java b/iotdb/src/test/java/org/apache/iotdb/db/engine/overflow/io/OverflowProcessorBenchmark.java
index 161c291..4c77958 100644
--- a/iotdb/src/test/java/org/apache/iotdb/db/engine/overflow/io/OverflowProcessorBenchmark.java
+++ b/iotdb/src/test/java/org/apache/iotdb/db/engine/overflow/io/OverflowProcessorBenchmark.java
@@ -30,6 +30,7 @@ import org.apache.iotdb.db.engine.bufferwrite.ActionException;
 import org.apache.iotdb.db.engine.bufferwrite.FileNodeConstants;
 import org.apache.iotdb.db.engine.version.SysTimeVersionController;
 import org.apache.iotdb.db.exception.OverflowProcessorException;
+import org.apache.iotdb.db.exception.ProcessorException;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSEncoding;
 import org.apache.iotdb.tsfile.write.record.TSRecord;
@@ -78,7 +79,7 @@ public class OverflowProcessorBenchmark {
     FileUtils.deleteDirectory(new File(TsFileDBConf.getOverflowDataDir()));
   }
 
-  public static void main(String[] args) throws IOException, OverflowProcessorException {
+  public static void main(String[] args) throws IOException, ProcessorException {
     Map<String, Action> parameters = new HashMap<>();
     parameters.put(FileNodeConstants.OVERFLOW_FLUSH_ACTION, new Action() {
       @Override
diff --git a/iotdb/src/test/java/org/apache/iotdb/db/engine/overflow/io/OverflowProcessorTest.java b/iotdb/src/test/java/org/apache/iotdb/db/engine/overflow/io/OverflowProcessorTest.java
index 73a6bfc..4b4cdf9 100644
--- a/iotdb/src/test/java/org/apache/iotdb/db/engine/overflow/io/OverflowProcessorTest.java
+++ b/iotdb/src/test/java/org/apache/iotdb/db/engine/overflow/io/OverflowProcessorTest.java
@@ -35,6 +35,7 @@ import org.apache.iotdb.db.engine.querycontext.MergeSeriesDataSource;
 import org.apache.iotdb.db.engine.querycontext.OverflowSeriesDataSource;
 import org.apache.iotdb.db.engine.version.SysTimeVersionController;
 import org.apache.iotdb.db.exception.OverflowProcessorException;
+import org.apache.iotdb.db.exception.ProcessorException;
 import org.apache.iotdb.db.query.context.QueryContext;
 import org.apache.iotdb.db.utils.EnvironmentUtils;
 import org.apache.iotdb.db.utils.TimeValuePair;
@@ -78,7 +79,7 @@ public class OverflowProcessorTest {
 
   @Test
   public void testInsertUpdate()
-      throws IOException, OverflowProcessorException, InterruptedException {
+      throws IOException, ProcessorException, InterruptedException {
     processor = new OverflowProcessor(processorName, parameters, OverflowTestUtils.getFileSchema(),
         SysTimeVersionController.INSTANCE);
     assertEquals(true, new File(PathUtils.getOverflowWriteDir(processorName),
@@ -147,7 +148,7 @@ public class OverflowProcessorTest {
   }
 
   @Test
-  public void testWriteMemoryAndQuery() throws IOException, OverflowProcessorException {
+  public void testWriteMemoryAndQuery() throws IOException, ProcessorException {
     processor = new OverflowProcessor(processorName, parameters, OverflowTestUtils.getFileSchema(),
         SysTimeVersionController.INSTANCE);
     OverflowTestUtils.produceInsertData(processor);
@@ -165,7 +166,7 @@ public class OverflowProcessorTest {
   }
 
   @Test
-  public void testFlushAndQuery() throws IOException, OverflowProcessorException {
+  public void testFlushAndQuery() throws IOException, ProcessorException {
     processor = new OverflowProcessor(processorName, parameters, OverflowTestUtils.getFileSchema(),
         SysTimeVersionController.INSTANCE);
     processor.flush();
@@ -185,7 +186,7 @@ public class OverflowProcessorTest {
   }
 
   @Test
-  public void testRecovery() throws OverflowProcessorException, IOException {
+  public void testRecovery() throws ProcessorException, IOException {
     processor = new OverflowProcessor(processorName, parameters, OverflowTestUtils.getFileSchema(),
         SysTimeVersionController.INSTANCE);
     processor.close();
diff --git a/iotdb/src/test/java/org/apache/iotdb/db/engine/overflow/io/OverflowResourceTest.java b/iotdb/src/test/java/org/apache/iotdb/db/engine/overflow/io/OverflowResourceTest.java
index 3a4e013..28eefb0 100644
--- a/iotdb/src/test/java/org/apache/iotdb/db/engine/overflow/io/OverflowResourceTest.java
+++ b/iotdb/src/test/java/org/apache/iotdb/db/engine/overflow/io/OverflowResourceTest.java
@@ -46,7 +46,7 @@ public class OverflowResourceTest {
 
   @Before
   public void setUp() throws Exception {
-    work = new OverflowResource(folderPath, dataPath, SysTimeVersionController.INSTANCE);
+    work = new OverflowResource(folderPath, dataPath, SysTimeVersionController.INSTANCE,"processorName");
     insertFile = new File(new File(folderPath, dataPath), insertFileName);
   }
 
@@ -86,7 +86,7 @@ public class OverflowResourceTest {
     fileOutputStream.write(new byte[20]);
     fileOutputStream.close();
     assertEquals(originlength + 20, insertFile.length());
-    work = new OverflowResource(folderPath, dataPath, SysTimeVersionController.INSTANCE);
+    work = new OverflowResource(folderPath, dataPath, SysTimeVersionController.INSTANCE, "processorName");
     chunkMetaDatas = work
         .getInsertMetadatas(OverflowTestUtils.deviceId1, OverflowTestUtils.measurementId1,
             OverflowTestUtils.dataType1, context);
diff --git a/iotdb/src/test/java/org/apache/iotdb/db/writelog/RecoverTest.java b/iotdb/src/test/java/org/apache/iotdb/db/writelog/RecoverTest.java
index 4caaed4..87e6779 100644
--- a/iotdb/src/test/java/org/apache/iotdb/db/writelog/RecoverTest.java
+++ b/iotdb/src/test/java/org/apache/iotdb/db/writelog/RecoverTest.java
@@ -18,16 +18,16 @@
  */
 package org.apache.iotdb.db.writelog;
 
-import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 
 import java.io.File;
 import java.io.IOException;
 import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.List;
 import org.apache.iotdb.db.conf.IoTDBConfig;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
+import org.apache.iotdb.db.engine.filenode.TsFileResource;
+import org.apache.iotdb.db.engine.version.SysTimeVersionController;
 import org.apache.iotdb.db.exception.PathErrorException;
 import org.apache.iotdb.db.exception.ProcessorException;
 import org.apache.iotdb.db.exception.RecoverException;
@@ -38,10 +38,13 @@ import org.apache.iotdb.db.qp.physical.crud.InsertPlan;
 import org.apache.iotdb.db.qp.physical.crud.UpdatePlan;
 import org.apache.iotdb.db.utils.EnvironmentUtils;
 import org.apache.iotdb.db.writelog.node.ExclusiveWriteLogNode;
-import org.apache.iotdb.db.writelog.recover.ExclusiveLogRecoverPerformer;
-import org.apache.iotdb.db.writelog.recover.RecoverPerformer;
-import org.apache.iotdb.db.writelog.replay.LogReplayer;
+import org.apache.iotdb.db.writelog.recover.TsFileRecoverPerformer;
+import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
+import org.apache.iotdb.tsfile.file.metadata.enums.TSEncoding;
 import org.apache.iotdb.tsfile.read.common.Path;
+import org.apache.iotdb.tsfile.write.schema.FileSchema;
+import org.apache.iotdb.tsfile.write.schema.MeasurementSchema;
+import org.apache.iotdb.tsfile.write.writer.TsFileIOWriter;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -66,22 +69,27 @@ public class RecoverTest {
   }
 
   @Test
-  public void testFullRecover() throws IOException, RecoverException {
+  public void testFullRecover() throws IOException, RecoverException, ProcessorException {
     // this test write a log file and try to recover from these logs as if no previous attempts exist.
-    File tempRestore = new File("testtemp", "restore");
-    File tempProcessorStore = new File("testtemp", "processorStore");
-    tempRestore.getParentFile().mkdirs();
-    tempRestore.createNewFile();
-    tempProcessorStore.createNewFile();
-
+    File insertFile = new File("testTemp");
+    FileSchema schema = new FileSchema();
+    String deviceId = "root.testLogNode";
+    schema.registerMeasurement(new MeasurementSchema("s1", TSDataType.FLOAT, TSEncoding.PLAIN));
+    schema.registerMeasurement(new MeasurementSchema("s2", TSDataType.INT32, TSEncoding.PLAIN));
+    schema.registerMeasurement(new MeasurementSchema("s3", TSDataType.TEXT, TSEncoding.PLAIN));
+    schema.registerMeasurement(new MeasurementSchema("s4", TSDataType.BOOLEAN, TSEncoding.PLAIN));
+
+    TsFileIOWriter writer = new TsFileIOWriter(insertFile);
+    writer.endFile(schema);
+    TsFileResource tsFileResource = new TsFileResource(insertFile, true);
     try {
-      MManager.getInstance().setStorageLevelToMTree("root.testLogNode");
+      MManager.getInstance().setStorageLevelToMTree(deviceId);
     } catch (PathErrorException ignored) {
     }
-    ExclusiveWriteLogNode logNode = new ExclusiveWriteLogNode("root.testLogNode");
+    ExclusiveWriteLogNode logNode = new ExclusiveWriteLogNode(deviceId);
 
     try {
-      InsertPlan bwInsertPlan = new InsertPlan(1, "logTestDevice", 100,
+      InsertPlan bwInsertPlan = new InsertPlan(1, deviceId, 100,
           new String[]{"s1", "s2", "s3", "s4"},
           new String[]{"1.0", "15", "str", "false"});
       UpdatePlan updatePlan = new UpdatePlan(0, 100, "2.0", new Path("root.logTestDevice.s1"));
@@ -98,22 +106,11 @@ public class RecoverTest {
       logNode.write(deletePlan);
       logNode.forceSync();
 
-      ExclusiveLogRecoverPerformer performer = new ExclusiveLogRecoverPerformer(
-          tempRestore.getPath(),
-          tempProcessorStore.getPath(), logNode);
+      TsFileRecoverPerformer performer = new TsFileRecoverPerformer(
+          insertFile.getPath(), deviceId, schema, SysTimeVersionController.INSTANCE, tsFileResource,
+          tsFileResource.getModFile());
       // used to check if logs are replayed in order
-      DummyLogReplayer dummyLogReplayer = new DummyLogReplayer();
-      dummyLogReplayer.plansToCheck = plansToCheck;
-      performer.setReplayer(dummyLogReplayer);
-      // used to check that FileNode does recover
-      DummyFileNodeRecoverPerformer fileNodeRecoverPerformer = new DummyFileNodeRecoverPerformer();
-      performer.setFileNodeRecoverPerformer(fileNodeRecoverPerformer);
-      logNode.setRecoverPerformer(performer);
-
-      logNode.recover();
-      assertTrue(fileNodeRecoverPerformer.called);
-      // ensure all logs are replayed
-      assertEquals(plansToCheck.size(), dummyLogReplayer.currPos);
+      performer.recover();
 
       // the log diretory should be empty now
       File logDir = new File(logNode.getLogDirectory());
@@ -121,182 +118,7 @@ public class RecoverTest {
       assertTrue(files == null || files.length == 0);
     } finally {
       logNode.delete();
-      tempRestore.delete();
-      tempProcessorStore.delete();
-      tempRestore.getParentFile().delete();
-    }
-  }
-
-  @Test
-  public void testRecoverFromRecoverFiles() throws IOException, RecoverException {
-    // this test write a log file and try to recover from these logs as if a previous attempt is interrupted when
-    // recovering files or replaying logs.
-    // skip file backup by setting backup flag and creating backup files.
-    File tempRestore = new File("testtemp", "restore");
-    File tempProcessorStore = new File("testtemp", "processorStore");
-    File tempRestoreRecovery = new File("testtemp",
-        "restore" + ExclusiveLogRecoverPerformer.RECOVER_SUFFIX);
-    File tempProcessorStoreRecovery = new File("testtemp",
-        "processorStore" + ExclusiveLogRecoverPerformer.RECOVER_SUFFIX);
-    tempRestore.getParentFile().mkdirs();
-    tempRestore.createNewFile();
-    tempProcessorStore.createNewFile();
-    tempRestoreRecovery.createNewFile();
-    tempProcessorStoreRecovery.createNewFile();
-
-    try {
-      MManager.getInstance().setStorageLevelToMTree("root.testLogNode");
-    } catch (PathErrorException ignored) {
-    }
-    ExclusiveWriteLogNode logNode = new ExclusiveWriteLogNode("root.testLogNode");
-
-    try {
-      // set flag
-      File flagFile = new File(logNode.getLogDirectory() + File.separator
-          + ExclusiveLogRecoverPerformer.RECOVER_FLAG_NAME + "-" + RecoverStage.BACK_UP.name());
-      flagFile.createNewFile();
-
-      InsertPlan bwInsertPlan = new InsertPlan(1, "logTestDevice", 100,
-          new String[]{"s1", "s2", "s3", "s4"},
-          new String[]{"1.0", "15", "str", "false"});
-      UpdatePlan updatePlan = new UpdatePlan(0, 100, "2.0", new Path("root.logTestDevice.s1"));
-      DeletePlan deletePlan = new DeletePlan(50, new Path("root.logTestDevice.s1"));
-
-      List<PhysicalPlan> plansToCheck = new ArrayList<>();
-      plansToCheck.add(bwInsertPlan);
-      plansToCheck.add(updatePlan);
-      plansToCheck.add(deletePlan);
-
-      logNode.write(bwInsertPlan);
-      logNode.write(updatePlan);
-      logNode.write(deletePlan);
-      logNode.forceSync();
-
-      ExclusiveLogRecoverPerformer performer = new ExclusiveLogRecoverPerformer(
-          tempRestore.getPath(),
-          tempProcessorStore.getPath(), logNode);
-      // used to check if logs are replayed in order
-      DummyLogReplayer dummyLogReplayer = new DummyLogReplayer();
-      dummyLogReplayer.plansToCheck = plansToCheck;
-      performer.setReplayer(dummyLogReplayer);
-      // used to check that FileNode does recover
-      DummyFileNodeRecoverPerformer fileNodeRecoverPerformer = new DummyFileNodeRecoverPerformer();
-      performer.setFileNodeRecoverPerformer(fileNodeRecoverPerformer);
-      logNode.setRecoverPerformer(performer);
-
-      logNode.recover();
-      assertTrue(fileNodeRecoverPerformer.called);
-      // ensure all logs are replayed
-      assertEquals(plansToCheck.size(), dummyLogReplayer.currPos);
-
-      // the log diretory should be empty now
-      File logDir = new File(logNode.getLogDirectory());
-      File[] files = logDir.listFiles();
-      assertTrue(files == null || files.length == 0);
-    } finally {
-      logNode.delete();
-      tempRestore.delete();
-      tempProcessorStore.delete();
-      assertTrue(!tempRestoreRecovery.exists());
-      assertTrue(!tempProcessorStoreRecovery.exists());
-      tempRestore.getParentFile().delete();
-    }
-  }
-
-  @Test
-  public void testRecoverFromCleanup() throws IOException, RecoverException {
-    // this test write a log file and try to recover from these logs as if a previous attempt is interrupted when
-    // cleanup files.
-    // skip previous stage by setting backup flag and creating backup files.
-    File tempRestore = new File("testtemp", "restore");
-    File tempProcessorStore = new File("testtemp", "processorStore");
-    File tempRestoreRecovery = new File("testtemp",
-        "restore" + ExclusiveLogRecoverPerformer.RECOVER_SUFFIX);
-    File tempProcessorStoreRecovery = new File("testtemp",
-        "processorStore" + ExclusiveLogRecoverPerformer.RECOVER_SUFFIX);
-    tempRestore.getParentFile().mkdirs();
-    tempRestore.createNewFile();
-    tempProcessorStore.createNewFile();
-    tempRestoreRecovery.createNewFile();
-    tempProcessorStoreRecovery.createNewFile();
-
-    try {
-      MManager.getInstance().setStorageLevelToMTree("root.testLogNode");
-    } catch (PathErrorException ignored) {
-    }
-    ExclusiveWriteLogNode logNode = new ExclusiveWriteLogNode("root.testLogNode");
-
-    try {
-      // set flag
-      File flagFile = new File(logNode.getLogDirectory() + File.separator
-          + ExclusiveLogRecoverPerformer.RECOVER_FLAG_NAME + "-" + RecoverStage.REPLAY_LOG.name());
-      flagFile.createNewFile();
-
-      InsertPlan bwInsertPlan = new InsertPlan(1, "logTestDevice", 100,
-          new String[]{"s1", "s2", "s3", "s4"},
-          new String[]{"1.0", "15", "str", "false"});
-      UpdatePlan updatePlan = new UpdatePlan(0, 100, "2.0", new Path("root.logTestDevice.s1"));
-      DeletePlan deletePlan = new DeletePlan(50, new Path("root.logTestDevice.s1"));
-
-      List<PhysicalPlan> plansToCheck = new ArrayList<>();
-      plansToCheck.add(bwInsertPlan);
-      plansToCheck.add(updatePlan);
-      plansToCheck.add(deletePlan);
-
-      logNode.write(bwInsertPlan);
-      logNode.write(updatePlan);
-      logNode.write(deletePlan);
-      logNode.forceSync();
-
-      ExclusiveLogRecoverPerformer performer = new ExclusiveLogRecoverPerformer(
-          tempRestore.getPath(),
-          tempProcessorStore.getPath(), logNode);
-      // used to check that no log is replayed
-      DummyLogReplayer dummyLogReplayer = new DummyLogReplayer();
-      performer.setReplayer(dummyLogReplayer);
-      // used to check that FileNode does recover
-      DummyFileNodeRecoverPerformer fileNodeRecoverPerformer = new DummyFileNodeRecoverPerformer();
-      performer.setFileNodeRecoverPerformer(fileNodeRecoverPerformer);
-      logNode.setRecoverPerformer(performer);
-
-      logNode.recover();
-      assertTrue(!fileNodeRecoverPerformer.called);
-
-      // the log diretory should be empty now
-      File logDir = new File(logNode.getLogDirectory());
-      File[] files = logDir.listFiles();
-      assertTrue(files == null || files.length == 0);
-    } finally {
-      logNode.delete();
-      tempRestore.delete();
-      tempProcessorStore.delete();
-      assertTrue(!tempRestoreRecovery.exists());
-      assertTrue(!tempProcessorStoreRecovery.exists());
-      tempRestore.getParentFile().delete();
-    }
-  }
-
-  class DummyFileNodeRecoverPerformer implements RecoverPerformer {
-
-    public boolean called = false;
-
-    @Override
-    public void recover() {
-      called = true;
-    }
-  }
-
-  class DummyLogReplayer implements LogReplayer {
-
-    public List<PhysicalPlan> plansToCheck;
-    public int currPos = 0;
-
-    @Override
-    public void replay(PhysicalPlan plan, boolean isOverflow) throws ProcessorException {
-      if (currPos >= plansToCheck.size()) {
-        throw new ProcessorException("More plans recovered than expected");
-      }
-      assertEquals(plansToCheck.get(currPos++), plan);
+      insertFile.delete();
     }
   }
 }
diff --git a/iotdb/src/test/java/org/apache/iotdb/db/writelog/WriteLogNodeManagerTest.java b/iotdb/src/test/java/org/apache/iotdb/db/writelog/WriteLogNodeManagerTest.java
index 13c372c..4b393e6 100644
--- a/iotdb/src/test/java/org/apache/iotdb/db/writelog/WriteLogNodeManagerTest.java
+++ b/iotdb/src/test/java/org/apache/iotdb/db/writelog/WriteLogNodeManagerTest.java
@@ -96,44 +96,4 @@ public class WriteLogNodeManagerTest {
     tempProcessorStore.delete();
     tempRestore.getParentFile().delete();
   }
-
-  @Test
-  public void testRecoverAll() throws IOException, RecoverException, MetadataArgsErrorException {
-    // this test create 5 log nodes and recover them
-    File tempRestore = File.createTempFile("managerTest", "restore");
-    File tempProcessorStore = File.createTempFile("managerTest", "processorStore");
-
-    WriteLogNodeManager manager = MultiFileLogNodeManager.getInstance();
-    for (int i = 0; i < 5; i++) {
-      String deviceName = "root.managerTest" + i;
-      try {
-        MManager.getInstance().setStorageLevelToMTree(deviceName);
-        MManager.getInstance().addPathToMTree(deviceName + ".s1", TSDataType.DOUBLE.name(),
-            TSEncoding.PLAIN.name());
-        MManager.getInstance().addPathToMTree(deviceName + ".s2", TSDataType.INT32.name(),
-            TSEncoding.PLAIN.name());
-        MManager.getInstance().addPathToMTree(deviceName + ".s3", TSDataType.TEXT.name(),
-            TSEncoding.PLAIN.name());
-        MManager.getInstance().addPathToMTree(deviceName + ".s4", TSDataType.BOOLEAN.name(),
-            TSEncoding.PLAIN.name());
-      } catch (PathErrorException ignored) {
-      }
-      WriteLogNode logNode = manager
-          .getNode(deviceName);
-
-      InsertPlan bwInsertPlan = new InsertPlan(1, deviceName, 100,
-          new String[]{"s1", "s2", "s3", "s4"},
-          new String[]{"1.0", "15", "str", "false"});
-      UpdatePlan updatePlan = new UpdatePlan(0, 100, "2.0", new Path(deviceName + ".s1"));
-      DeletePlan deletePlan = new DeletePlan(50, new Path(deviceName + ".s1"));
-
-      logNode.write(bwInsertPlan);
-      logNode.write(updatePlan);
-      logNode.write(deletePlan);
-
-      logNode.forceSync();
-      logNode.close();
-    }
-    manager.recover();
-  }
 }
diff --git a/iotdb/src/test/java/org/apache/iotdb/db/writelog/WriteLogNodeTest.java b/iotdb/src/test/java/org/apache/iotdb/db/writelog/WriteLogNodeTest.java
index 33fe9b0..5679dd8 100644
--- a/iotdb/src/test/java/org/apache/iotdb/db/writelog/WriteLogNodeTest.java
+++ b/iotdb/src/test/java/org/apache/iotdb/db/writelog/WriteLogNodeTest.java
@@ -158,16 +158,16 @@ public class WriteLogNodeTest {
     logNode.forceSync();
 
     File walFile = new File(
-        config.getWalFolder() + File.separator + "root.logTestDevice" + File.separator + "wal");
+        config.getWalFolder() + File.separator + "root.logTestDevice" + File.separator + "wal0");
     assertTrue(walFile.exists());
 
-    long taskId = logNode.notifyStartFlush();
+    logNode.notifyStartFlush();
     File oldWalFile = new File(
-        config.getWalFolder() + File.separator + "root.logTestDevice" + File.separator + "wal-old"+taskId);
+        config.getWalFolder() + File.separator + "root.logTestDevice" + File.separator + "wal1");
     assertTrue(oldWalFile.exists());
     assertTrue(oldWalFile.length() > 0);
 
-    logNode.notifyEndFlush(taskId);
+    logNode.notifyEndFlush();
     assertTrue(!oldWalFile.exists());
     assertEquals(0, walFile.length());