You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by hx...@apache.org on 2019/08/22 12:06:09 UTC
[incubator-iotdb] 01/03: fix bug about TsFileResource updateTime
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 <ru...@gmail.com>
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());
}
}
}