This is an automated email from the ASF dual-hosted git repository.
qiaojialin pushed a commit to branch rel/0.13
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/rel/0.13 by this push:
new a1488d93a6 [To rel/0.13] [IOTDB-3816] Fix /zero bug in recover (#6664)
a1488d93a6 is described below
commit a1488d93a65d28314b16c904e631d2947826d037
Author: Haonan <[email protected]>
AuthorDate: Wed Jul 13 16:00:18 2022 +0800
[To rel/0.13] [IOTDB-3816] Fix /zero bug in recover (#6664)
Co-authored-by: qiaojialin <[email protected]>
---
.../org/apache/iotdb/db/engine/flush/MemTableFlushTask.java | 10 ++++++++--
.../iotdb/db/writelog/recover/TsFileRecoverPerformer.java | 2 +-
2 files changed, 9 insertions(+), 3 deletions(-)
diff --git
a/server/src/main/java/org/apache/iotdb/db/engine/flush/MemTableFlushTask.java
b/server/src/main/java/org/apache/iotdb/db/engine/flush/MemTableFlushTask.java
index 5c7fa5e62d..5b145de275 100644
---
a/server/src/main/java/org/apache/iotdb/db/engine/flush/MemTableFlushTask.java
+++
b/server/src/main/java/org/apache/iotdb/db/engine/flush/MemTableFlushTask.java
@@ -96,13 +96,19 @@ public class MemTableFlushTask {
"The memTable size of SG {} is {}, the avg series points num in chunk
is {}, total timeseries number is {}",
storageGroup,
memTable.memSize(),
- memTable.getTotalPointsNum() / memTable.getSeriesNumber(),
+ memTable.getSeriesNumber() == 0
+ ? 0
+ : memTable.getTotalPointsNum() / memTable.getSeriesNumber(),
memTable.getSeriesNumber());
long estimatedTemporaryMemSize = 0L;
if (config.isEnableMemControl() &&
SystemInfo.getInstance().isEncodingFasterThanIo()) {
estimatedTemporaryMemSize =
- memTable.memSize() / memTable.getSeriesNumber() *
config.getIoTaskQueueSizeForFlushing();
+ memTable.getSeriesNumber() == 0
+ ? 0
+ : memTable.memSize()
+ / memTable.getSeriesNumber()
+ * config.getIoTaskQueueSizeForFlushing();
SystemInfo.getInstance().applyTemporaryMemoryForFlushing(estimatedTemporaryMemSize);
}
long start = System.currentTimeMillis();
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 730aa75d27..b7722b67dd 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
@@ -289,7 +289,7 @@ public class TsFileRecoverPerformer {
sequence);
logReplayer.replayLogs(supplier, virtualStorageGroupProcessor);
try {
- if (!recoverMemTable.isEmpty()) {
+ if (!recoverMemTable.isEmpty() && recoverMemTable.getSeriesNumber() !=
0) {
// flush logs
MemTableFlushTask tableFlushTask =
new MemTableFlushTask(