This is an automated email from the ASF dual-hosted git repository. haonan pushed a commit to branch fix_upgrade_mlog in repository https://gitbox.apache.org/repos/asf/incubator-iotdb.git
commit 46115d079e07edbd9927078b289e1dae08ab2ad0 Author: HTHou <[email protected]> AuthorDate: Thu Jul 23 09:31:33 2020 +0800 fix upgrading mlog many times --- .../main/java/org/apache/iotdb/db/conf/IoTDBConfigCheck.java | 12 ++++++++++++ .../main/java/org/apache/iotdb/db/metadata/MLogWriter.java | 8 -------- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConfigCheck.java b/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConfigCheck.java index e97a52d..6e6f3c9 100644 --- a/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConfigCheck.java +++ b/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConfigCheck.java @@ -191,6 +191,18 @@ public class IoTDBConfigCheck { checkUnClosedTsFileV1(); MLogWriter.upgradeMLog(SCHEMA_DIR, MetadataConstant.METADATA_LOG); upgradePropertiesFile(); + + // upgrade mlog finished, delete old mlog file + File mlogFile = SystemFileFactory.INSTANCE.getFile(SCHEMA_DIR + File.separator + + MetadataConstant.METADATA_LOG); + File tmpMLogFile = SystemFileFactory.INSTANCE.getFile(mlogFile.getAbsolutePath() + + ".tmp"); + + if (!mlogFile.delete()) { + throw new IOException("Deleting " + mlogFile + "failed."); + } + // rename tmpLogFile to mlog + FSFactoryProducer.getFSFactory().moveFile(tmpMLogFile, mlogFile); } checkProperties(); } diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/MLogWriter.java b/server/src/main/java/org/apache/iotdb/db/metadata/MLogWriter.java index 6b41a44..c00206e 100644 --- a/server/src/main/java/org/apache/iotdb/db/metadata/MLogWriter.java +++ b/server/src/main/java/org/apache/iotdb/db/metadata/MLogWriter.java @@ -152,14 +152,6 @@ public class MLogWriter { writer.flush(); } } - - // upgrade finished, delete old mlog file - if (!logFile.delete()) { - throw new IOException("Deleting " + logFile + "failed."); - } - - // rename tmpLogFile to mlog - FSFactoryProducer.getFSFactory().moveFile(tmpLogFile, logFile); } public void clear() throws IOException {
