This is an automated email from the ASF dual-hosted git repository. lta pushed a commit to branch fix_1194 in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 6ca6a82f287742018286b187c906cf08771dbc72 Author: lta <[email protected]> AuthorDate: Wed Mar 10 21:00:28 2021 +0800 fix a bug of checking time partition in DeviceTimeIndex --- .../storagegroup/timeindex/DeviceTimeIndex.java | 32 +++++++++------------- 1 file changed, 13 insertions(+), 19 deletions(-) diff --git a/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/timeindex/DeviceTimeIndex.java b/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/timeindex/DeviceTimeIndex.java index c5ce7b8..90341b0 100644 --- a/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/timeindex/DeviceTimeIndex.java +++ b/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/timeindex/DeviceTimeIndex.java @@ -19,14 +19,6 @@ package org.apache.iotdb.db.engine.storagegroup.timeindex; -import org.apache.iotdb.db.engine.StorageEngine; -import org.apache.iotdb.db.exception.PartitionViolationException; -import org.apache.iotdb.db.rescon.CachedStringPool; -import org.apache.iotdb.db.utils.FilePathUtils; -import org.apache.iotdb.db.utils.SerializeUtils; -import org.apache.iotdb.tsfile.utils.RamUsageEstimator; -import org.apache.iotdb.tsfile.utils.ReadWriteIOUtils; - import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; @@ -36,6 +28,13 @@ import java.util.Map; import java.util.Map.Entry; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; +import org.apache.iotdb.db.engine.StorageEngine; +import org.apache.iotdb.db.exception.PartitionViolationException; +import org.apache.iotdb.db.rescon.CachedStringPool; +import org.apache.iotdb.db.utils.FilePathUtils; +import org.apache.iotdb.db.utils.SerializeUtils; +import org.apache.iotdb.tsfile.utils.RamUsageEstimator; +import org.apache.iotdb.tsfile.utils.ReadWriteIOUtils; public class DeviceTimeIndex implements ITimeIndex { @@ -244,8 +243,8 @@ public class DeviceTimeIndex implements ITimeIndex { @Override public long getTimePartitionWithCheck(String tsfilePath) throws PartitionViolationException { long partitionId = -1; - for (Long startTime : startTimes) { - long p = StorageEngine.getTimePartition(startTime); + for (int index : deviceToIndex.values()) { + long p = StorageEngine.getTimePartition(startTimes[index]); if (partitionId == -1) { partitionId = p; } else { @@ -253,15 +252,10 @@ public class DeviceTimeIndex implements ITimeIndex { throw new PartitionViolationException(tsfilePath); } } - } - for (Long endTime : endTimes) { - long p = StorageEngine.getTimePartition(endTime); - if (partitionId == -1) { - partitionId = p; - } else { - if (partitionId != p) { - throw new PartitionViolationException(tsfilePath); - } + + p = StorageEngine.getTimePartition(endTimes[index]); + if (partitionId != p) { + throw new PartitionViolationException(tsfilePath); } } if (partitionId == -1) {
