This is an automated email from the ASF dual-hosted git repository.
qiaojialin pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/master by this push:
new 08b6c1514b [IOTDB-4636] Add check to avoid flush empty chunk group
(#7635)
08b6c1514b is described below
commit 08b6c1514bb880b40ab87557462d5663ef455dba
Author: Haonan <[email protected]>
AuthorDate: Tue Oct 18 10:22:22 2022 +0800
[IOTDB-4636] Add check to avoid flush empty chunk group (#7635)
---
.../org/apache/iotdb/db/engine/flush/MemTableFlushTask.java | 10 ++++++++--
1 file changed, 8 insertions(+), 2 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 a86380749d..2653d67eac 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
@@ -122,14 +122,20 @@ public class MemTableFlushTask {
// sort the IDeviceID in lexicographical order
deviceIDList.sort(Comparator.comparing(IDeviceID::toStringID));
for (IDeviceID deviceID : deviceIDList) {
- encodingTaskQueue.put(new StartFlushGroupIOTask(deviceID.toStringID()));
-
final Map<String, IWritableMemChunk> value =
memTableMap.get(deviceID).getMemChunkMap();
+ // skip the empty device/chunk group
+ if (memTableMap.get(deviceID).count() == 0 || value.isEmpty()) {
+ continue;
+ }
+ encodingTaskQueue.put(new StartFlushGroupIOTask(deviceID.toStringID()));
List<String> seriesInOrder = new ArrayList<>(value.keySet());
seriesInOrder.sort((String::compareTo));
for (String seriesId : seriesInOrder) {
long startTime = System.currentTimeMillis();
IWritableMemChunk series = value.get(seriesId);
+ if (series.count() == 0) {
+ continue;
+ }
/*
* sort task (first task of flush pipeline)
*/