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/incubator-iotdb.git


The following commit(s) were added to refs/heads/master by this push:
     new e200739  Avoid creating a new ChunkGroupFooter object. (#413)
e200739 is described below

commit e2007390cf6b496b1531955267911a416ca55385
Author: Boris <[email protected]>
AuthorDate: Mon Sep 23 19:08:32 2019 +0800

    Avoid creating a new ChunkGroupFooter object. (#413)
    
    * Avoid creating a new ChunkGroupFooter object.
---
 .../main/java/org/apache/iotdb/tsfile/write/TsFileWriter.java  | 10 ++++------
 .../apache/iotdb/tsfile/write/chunk/ChunkGroupWriterImpl.java  |  7 +++----
 .../org/apache/iotdb/tsfile/write/chunk/IChunkGroupWriter.java |  3 ++-
 3 files changed, 9 insertions(+), 11 deletions(-)

diff --git 
a/tsfile/src/main/java/org/apache/iotdb/tsfile/write/TsFileWriter.java 
b/tsfile/src/main/java/org/apache/iotdb/tsfile/write/TsFileWriter.java
index f15d6d0..7b47a91 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/write/TsFileWriter.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/write/TsFileWriter.java
@@ -22,19 +22,17 @@ import java.io.File;
 import java.io.IOException;
 import java.util.HashMap;
 import java.util.Map;
-
 import org.apache.iotdb.tsfile.common.conf.TSFileConfig;
 import org.apache.iotdb.tsfile.common.conf.TSFileDescriptor;
 import org.apache.iotdb.tsfile.exception.write.NoMeasurementException;
 import org.apache.iotdb.tsfile.exception.write.WriteProcessException;
-import org.apache.iotdb.tsfile.file.footer.ChunkGroupFooter;
 import org.apache.iotdb.tsfile.write.chunk.ChunkGroupWriterImpl;
 import org.apache.iotdb.tsfile.write.chunk.IChunkGroupWriter;
 import org.apache.iotdb.tsfile.write.record.RowBatch;
 import org.apache.iotdb.tsfile.write.record.TSRecord;
 import org.apache.iotdb.tsfile.write.record.datapoint.DataPoint;
-import org.apache.iotdb.tsfile.write.schema.Schema;
 import org.apache.iotdb.tsfile.write.schema.MeasurementSchema;
+import org.apache.iotdb.tsfile.write.schema.Schema;
 import org.apache.iotdb.tsfile.write.writer.TsFileIOWriter;
 import org.apache.iotdb.tsfile.write.writer.TsFileOutput;
 import org.slf4j.Logger;
@@ -303,11 +301,11 @@ public class TsFileWriter implements AutoCloseable{
         String deviceId = entry.getKey();
         IChunkGroupWriter groupWriter = entry.getValue();
         fileWriter.startChunkGroup(deviceId);
-        ChunkGroupFooter chunkGroupFooter = 
groupWriter.flushToFileWriter(fileWriter);
-        if (fileWriter.getPos() - pos != chunkGroupFooter.getDataSize()) {
+        long dataSize = groupWriter.flushToFileWriter(fileWriter);
+        if (fileWriter.getPos() - pos != dataSize) {
           throw new IOException(String.format(
               "Flushed data size is inconsistent with computation! Estimated: 
%d, Actual: %d",
-              chunkGroupFooter.getDataSize(), fileWriter.getPos() - pos));
+              dataSize, fileWriter.getPos() - pos));
         }
         fileWriter.endChunkGroup(0);
       }
diff --git 
a/tsfile/src/main/java/org/apache/iotdb/tsfile/write/chunk/ChunkGroupWriterImpl.java
 
b/tsfile/src/main/java/org/apache/iotdb/tsfile/write/chunk/ChunkGroupWriterImpl.java
index c1b1e2b..bef057f 100644
--- 
a/tsfile/src/main/java/org/apache/iotdb/tsfile/write/chunk/ChunkGroupWriterImpl.java
+++ 
b/tsfile/src/main/java/org/apache/iotdb/tsfile/write/chunk/ChunkGroupWriterImpl.java
@@ -118,17 +118,16 @@ public class ChunkGroupWriterImpl implements 
IChunkGroupWriter {
   }
 
   @Override
-  public ChunkGroupFooter flushToFileWriter(TsFileIOWriter fileWriter) throws 
IOException {
+  public long flushToFileWriter(TsFileIOWriter fileWriter) throws IOException {
     LOG.debug("start flush device id:{}", deviceId);
     // make sure all the pages have been compressed into buffers, so that we 
can get correct
     // groupWriter.getCurrentChunkGroupSize().
     sealAllChunks();
-    ChunkGroupFooter footer = new ChunkGroupFooter(deviceId, 
getCurrentChunkGroupSize(),
-        getSeriesNumber());
+    long currentChunkGroupSize = getCurrentChunkGroupSize();
     for (IChunkWriter seriesWriter : chunkWriters.values()) {
       seriesWriter.writeToFileWriter(fileWriter);
     }
-    return footer;
+    return currentChunkGroupSize;
   }
 
   @Override
diff --git 
a/tsfile/src/main/java/org/apache/iotdb/tsfile/write/chunk/IChunkGroupWriter.java
 
b/tsfile/src/main/java/org/apache/iotdb/tsfile/write/chunk/IChunkGroupWriter.java
index eb99cfe..fb5623b 100644
--- 
a/tsfile/src/main/java/org/apache/iotdb/tsfile/write/chunk/IChunkGroupWriter.java
+++ 
b/tsfile/src/main/java/org/apache/iotdb/tsfile/write/chunk/IChunkGroupWriter.java
@@ -69,8 +69,9 @@ public interface IChunkGroupWriter {
    *            - TSFileIOWriter
    * @throws IOException
    *             exception in IO
+   * @return current ChunkGroupDataSize
    */
-  ChunkGroupFooter flushToFileWriter(TsFileIOWriter tsfileWriter) throws 
IOException;
+  long flushToFileWriter(TsFileIOWriter tsfileWriter) throws IOException;
 
   /**
    * get the max memory occupied at this time.

Reply via email to