This is an automated email from the ASF dual-hosted git repository. hxd pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/incubator-iotdb.git
commit 0d39fcd207994a7e8a4395e75ca040070b09c162 Author: RuiLei <[email protected]> AuthorDate: Wed Aug 21 15:26:57 2019 +0800 fix bug about TsFileResource updateTime --- .../iotdb/db/cost/statistic/Measurement.java | 2 +- .../engine/storagegroup/StorageGroupProcessor.java | 2 +- .../db/engine/storagegroup/TsFileResource.java | 1 + .../iotdb/db/writelog/recover/LogReplayer.java | 4 +-- .../writelog/recover/TsFileRecoverPerformer.java | 30 ++++++++++++---------- 5 files changed, 22 insertions(+), 17 deletions(-) diff --git a/server/src/main/java/org/apache/iotdb/db/cost/statistic/Measurement.java b/server/src/main/java/org/apache/iotdb/db/cost/statistic/Measurement.java index 1c7aded..377023b 100644 --- a/server/src/main/java/org/apache/iotdb/db/cost/statistic/Measurement.java +++ b/server/src/main/java/org/apache/iotdb/db/cost/statistic/Measurement.java @@ -253,7 +253,7 @@ public class Measurement implements MeasurementMBean, IService { service = IoTDBThreadPoolFactory.newScheduledThreadPool( 2, ThreadName.TIME_COST_STATSTIC.getName()); } - //we have to check again because someone may channge the value. + //we have to check again because someone may change the value. isEnableStat = IoTDBDescriptor.getInstance().getConfig().isEnablePerformanceStat(); if (isEnableStat) { consumeFuture = service.schedule(new QueueConsumerThread(), 0, TimeUnit.MILLISECONDS); diff --git a/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/StorageGroupProcessor.java b/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/StorageGroupProcessor.java index 6661736..afd3ca2 100755 --- a/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/StorageGroupProcessor.java +++ b/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/StorageGroupProcessor.java @@ -170,7 +170,7 @@ public class StorageGroupProcessor { logger.info("Storage Group system Directory {} doesn't exist, create it", storageGroupSysDir.getPath()); } else if (!storageGroupSysDir.exists()) { - logger.error("craete Storage Group system Directory {} failed", + logger.error("create Storage Group system Directory {} failed", storageGroupSysDir.getPath()); } diff --git a/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/TsFileResource.java b/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/TsFileResource.java index fae36f2..1ad5306 100644 --- a/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/TsFileResource.java +++ b/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/TsFileResource.java @@ -221,6 +221,7 @@ public class TsFileResource { return processor; } + @Deprecated public void updateTime(String deviceId, long time) { startTimeMap.putIfAbsent(deviceId, time); Long endTime = endTimeMap.get(deviceId); diff --git a/server/src/main/java/org/apache/iotdb/db/writelog/recover/LogReplayer.java b/server/src/main/java/org/apache/iotdb/db/writelog/recover/LogReplayer.java index 2e1f774..b0e63eb 100644 --- a/server/src/main/java/org/apache/iotdb/db/writelog/recover/LogReplayer.java +++ b/server/src/main/java/org/apache/iotdb/db/writelog/recover/LogReplayer.java @@ -103,8 +103,8 @@ public class LogReplayer { } finally { logReader.close(); } - tempStartTimeMap.forEach((k, v) -> currentTsFileResource.updateTime(k, v)); - tempEndTimeMap.forEach((k, v) -> currentTsFileResource.updateTime(k, v)); + tempStartTimeMap.forEach((k, v) -> currentTsFileResource.updateStartTime(k, v)); + tempEndTimeMap.forEach((k, v) -> currentTsFileResource.updateEndTime(k, v)); } private void replayDelete(DeletePlan deletePlan) throws IOException { diff --git a/server/src/main/java/org/apache/iotdb/db/writelog/recover/TsFileRecoverPerformer.java b/server/src/main/java/org/apache/iotdb/db/writelog/recover/TsFileRecoverPerformer.java index d012e3d..353390b 100644 --- a/server/src/main/java/org/apache/iotdb/db/writelog/recover/TsFileRecoverPerformer.java +++ b/server/src/main/java/org/apache/iotdb/db/writelog/recover/TsFileRecoverPerformer.java @@ -26,8 +26,8 @@ import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.util.concurrent.ExecutionException; -import org.apache.iotdb.db.engine.memtable.IMemTable; import org.apache.iotdb.db.engine.flush.MemTableFlushTask; +import org.apache.iotdb.db.engine.memtable.IMemTable; import org.apache.iotdb.db.engine.memtable.PrimitiveMemTable; import org.apache.iotdb.db.engine.storagegroup.TsFileResource; import org.apache.iotdb.db.engine.version.VersionController; @@ -45,10 +45,11 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** - * TsFileRecoverPerformer recovers a SeqTsFile to correct status, redoes the WALs since last - * crash and removes the redone logs. + * TsFileRecoverPerformer recovers a SeqTsFile to correct status, redoes the WALs since last crash + * and removes the redone logs. */ public class TsFileRecoverPerformer { + private static final Logger logger = LoggerFactory.getLogger(TsFileRecoverPerformer.class); private String insertFilePath; @@ -72,10 +73,7 @@ public class TsFileRecoverPerformer { /** * 1. recover the TsFile by RestorableTsFileIOWriter and truncate the file to remaining corrected - * data - * 2. redo the WALs to recover unpersisted data - * 3. flush and close the file - * 4. clean WALs + * data 2. redo the WALs to recover unpersisted data 3. flush and close the file 4. clean WALs */ public void recover() throws ProcessorException { IMemTable recoverMemTable = new PrimitiveMemTable(); @@ -103,17 +101,21 @@ public class TsFileRecoverPerformer { tsFileResource.deSerialize(); } else { // .resource file does not exist, read file metadata and recover tsfile resource - try (TsFileSequenceReader reader = new TsFileSequenceReader(tsFileResource.getFile().getAbsolutePath())) { + try (TsFileSequenceReader reader = new TsFileSequenceReader( + tsFileResource.getFile().getAbsolutePath())) { TsFileMetaData metaData = reader.readFileMetadata(); List<TsDeviceMetadataIndex> deviceMetadataIndexList = new ArrayList<>( metaData.getDeviceMap().values()); for (TsDeviceMetadataIndex index : deviceMetadataIndexList) { TsDeviceMetadata deviceMetadata = reader.readTsDeviceMetaData(index); - List<ChunkGroupMetaData> chunkGroupMetaDataList = deviceMetadata.getChunkGroupMetaDataList(); + List<ChunkGroupMetaData> chunkGroupMetaDataList = deviceMetadata + .getChunkGroupMetaDataList(); for (ChunkGroupMetaData chunkGroupMetaData : chunkGroupMetaDataList) { for (ChunkMetaData chunkMetaData : chunkGroupMetaData.getChunkMetaDataList()) { - tsFileResource.updateTime(chunkGroupMetaData.getDeviceID(), chunkMetaData.getStartTime()); - tsFileResource.updateTime(chunkGroupMetaData.getDeviceID(), chunkMetaData.getEndTime()); + tsFileResource.updateStartTime(chunkGroupMetaData.getDeviceID(), + chunkMetaData.getStartTime()); + tsFileResource + .updateEndTime(chunkGroupMetaData.getDeviceID(), chunkMetaData.getEndTime()); } } } @@ -132,8 +134,10 @@ public class TsFileRecoverPerformer { for (ChunkGroupMetaData chunkGroupMetaData : restorableTsFileIOWriter .getChunkGroupMetaDatas()) { for (ChunkMetaData chunkMetaData : chunkGroupMetaData.getChunkMetaDataList()) { - tsFileResource.updateTime(chunkGroupMetaData.getDeviceID(), chunkMetaData.getStartTime()); - tsFileResource.updateTime(chunkGroupMetaData.getDeviceID(), chunkMetaData.getEndTime()); + tsFileResource.updateStartTime(chunkGroupMetaData.getDeviceID(), + chunkMetaData.getStartTime()); + tsFileResource + .updateEndTime(chunkGroupMetaData.getDeviceID(), chunkMetaData.getEndTime()); } } }
