You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ja...@apache.org on 2021/01/27 04:02:35 UTC
[iotdb] branch draft_serial_flush_task updated: change to the same
This is an automated email from the ASF dual-hosted git repository.
jackietien pushed a commit to branch draft_serial_flush_task
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/draft_serial_flush_task by this push:
new bccd324 change to the same
bccd324 is described below
commit bccd324960cbd16c658ee011ac8e953df8f655ec
Author: JackieTien97 <Ja...@foxmail.com>
AuthorDate: Wed Jan 27 12:01:02 2021 +0800
change to the same
---
.../iotdb/db/engine/flush/MemTableFlushTask.java | 24 +++++++++++++++++++---
1 file changed, 21 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 22360ff..1685957 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
@@ -80,7 +80,10 @@ public class MemTableFlushTask {
LOGGER.info("The memTable size of SG {} is {}, the avg series points num in chunk is {} ",
storageGroup, memTable.memSize(),
memTable.getTotalPointsNum() / memTable.getSeriesNumber());
- long start = System.currentTimeMillis();
+ long startTime = System.currentTimeMillis();
+ long sortCost = 0;
+ long encodingCost = 0;
+ long ioCost = 0;
Set<Entry<String, Map<String, IWritableMemChunk>>> ite = memTable.getMemTableMap().entrySet();
try {
@@ -89,20 +92,27 @@ public class MemTableFlushTask {
this.writer.startChunkGroup(memTableEntry.getKey());
final Map<String, IWritableMemChunk> value = memTableEntry.getValue();
for (Entry<String, IWritableMemChunk> iWritableMemChunkEntry : value.entrySet()) {
+ long sortStartTime = System.currentTimeMillis();
IWritableMemChunk series = iWritableMemChunkEntry.getValue();
MeasurementSchema desc = series.getSchema();
TVList tvList = series.getSortedTVListForFlush();
-
+ long encodingStartTime = System.currentTimeMillis();
+ sortCost += (encodingStartTime - sortStartTime);
//start flush
IChunkWriter seriesWriter = new ChunkWriterImpl(desc);
writeOneSeries(tvList, seriesWriter, desc.getType());
seriesWriter.sealCurrentPage();
seriesWriter.clearPageWriter();
+ long ioStartTime = System.currentTimeMillis();
+ sortCost += (ioStartTime - encodingStartTime);
seriesWriter.writeToFileWriter(this.writer);
+ ioCost += (System.currentTimeMillis() - ioStartTime);
}
+ long ioStartTime = System.currentTimeMillis();
this.writer.setMinPlanIndex(memTable.getMinPlanIndex());
this.writer.setMaxPlanIndex(memTable.getMaxPlanIndex());
this.writer.endChunkGroup();
+ ioCost += (System.currentTimeMillis() - ioStartTime);
}
writer.writeVersion(memTable.getVersion());
@@ -113,8 +123,16 @@ public class MemTableFlushTask {
throw new FlushRunTimeException(e);
}
LOGGER.info(
+ "Storage group {} memtable {}, flushing into disk: data sort time cost {} ms.",
+ storageGroup, memTable.getVersion(), sortCost);
+ LOGGER.info("Storage group {}, flushing memtable {} into disk: Encoding data cost "
+ + "{} ms.",
+ storageGroup, memTable.getVersion(), encodingCost);
+ LOGGER.debug("flushing a memtable {} in storage group {}, io cost {}ms", memTable.getVersion(),
+ storageGroup, ioCost);
+ LOGGER.info(
"Storage group {} memtable {} flushing a memtable has finished! Time consumption: {}ms",
- storageGroup, memTable, System.currentTimeMillis() - start);
+ storageGroup, memTable, System.currentTimeMillis() - startTime);
}