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/02/04 09:19:45 UTC

[iotdb] 01/01: improve flush

This is an automated email from the ASF dual-hosted git repository.

jackietien pushed a commit to branch ImproveFlush
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit e8e7bf90673d4acc9ce28f1f79ff3083af0250e3
Author: JackieTien97 <Ja...@foxmail.com>
AuthorDate: Thu Feb 4 17:13:00 2021 +0800

    improve flush
---
 .../main/java/org/apache/iotdb/tsfile/utils/PublicBAOS.java  |  5 +++++
 .../org/apache/iotdb/tsfile/write/chunk/ChunkWriterImpl.java | 12 +++---------
 2 files changed, 8 insertions(+), 9 deletions(-)

diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/utils/PublicBAOS.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/utils/PublicBAOS.java
index de4c985..085bcef 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/utils/PublicBAOS.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/utils/PublicBAOS.java
@@ -79,4 +79,9 @@ public class PublicBAOS extends ByteArrayOutputStream {
   public void reset() {
     count = 0;
   }
+
+  @Override
+  public int size() {
+    return count;
+  }
 }
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/write/chunk/ChunkWriterImpl.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/write/chunk/ChunkWriterImpl.java
index a1968c8..0b92c6f 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/write/chunk/ChunkWriterImpl.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/write/chunk/ChunkWriterImpl.java
@@ -52,11 +52,6 @@ public class ChunkWriterImpl implements IChunkWriter {
    */
   private PublicBAOS pageBuffer;
 
-  /**
-   * current chunk data size, i.e the size of pageBuffer
-   */
-  private int chunkDataSize;
-
   private int numOfPages;
 
   /**
@@ -356,7 +351,6 @@ public class ChunkWriterImpl implements IChunkWriter {
     if (pageWriter != null && pageWriter.getPointNumber() > 0) {
       writePageToPageBuffer();
     }
-    chunkDataSize = pageBuffer.size();
   }
   
   public void clearPageWriter() {
@@ -424,7 +418,7 @@ public class ChunkWriterImpl implements IChunkWriter {
 
     // start to write this column chunk
     writer.startFlushChunk(measurementSchema, compressor.getType(), measurementSchema.getType(),
-        measurementSchema.getEncodingType(), statistics, chunkDataSize, numOfPages);
+        measurementSchema.getEncodingType(), statistics, pageBuffer.size(), numOfPages);
 
     long dataOffset = writer.getPos();
 
@@ -432,10 +426,10 @@ public class ChunkWriterImpl implements IChunkWriter {
     writer.writeBytesToStream(pageBuffer);
 
     int dataSize = (int) (writer.getPos() - dataOffset);
-    if (dataSize != chunkDataSize) {
+    if (dataSize != pageBuffer.size()) {
       throw new IOException(
           "Bytes written is inconsistent with the size of data: " + dataSize + " !="
-              + " " + chunkDataSize);
+              + " " + pageBuffer.size());
     }
 
     writer.endCurrentChunk();