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 <[email protected]>
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);
}