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

jiangtian 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 4725e7e5978 Fixed issue where the wal version kept increasing after 
the write load stopped (#12960)
4725e7e5978 is described below

commit 4725e7e5978a890e1237e490a799ab96f0b73ce2
Author: Potato <[email protected]>
AuthorDate: Thu Jul 18 16:39:37 2024 +0800

    Fixed issue where the wal version kept increasing after the write load 
stopped (#12960)
    
    * fix
    
    Signed-off-by: OneSizeFitQuorum <[email protected]>
    
    * fix metric
    
    Signed-off-by: OneSizeFitQuorum <[email protected]>
    
    * fix review
    
    Signed-off-by: OneSizeFitQuorum <[email protected]>
    
    ---------
    
    Signed-off-by: OneSizeFitQuorum <[email protected]>
---
 .../storageengine/dataregion/wal/buffer/AbstractWALBuffer.java   | 4 ++--
 .../iotdb/db/storageengine/dataregion/wal/buffer/IWALBuffer.java | 4 ++--
 .../iotdb/db/storageengine/dataregion/wal/io/LogWriter.java      | 9 +--------
 .../iotdb/db/storageengine/dataregion/wal/io/WALWriter.java      | 2 --
 .../iotdb/db/storageengine/dataregion/wal/node/WALNode.java      | 2 +-
 5 files changed, 6 insertions(+), 15 deletions(-)

diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/wal/buffer/AbstractWALBuffer.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/wal/buffer/AbstractWALBuffer.java
index c4c5bc13a3d..c8f68523032 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/wal/buffer/AbstractWALBuffer.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/wal/buffer/AbstractWALBuffer.java
@@ -84,8 +84,8 @@ public abstract class AbstractWALBuffer implements IWALBuffer 
{
   }
 
   @Override
-  public long getCurrentWALFileSize() {
-    return currentWALFileWriter.size();
+  public long getCurrentWALOriginalFileSize() {
+    return currentWALFileWriter.originalSize();
   }
 
   /**
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/wal/buffer/IWALBuffer.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/wal/buffer/IWALBuffer.java
index b5b283ed021..f3da2cd7143 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/wal/buffer/IWALBuffer.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/wal/buffer/IWALBuffer.java
@@ -36,8 +36,8 @@ public interface IWALBuffer extends AutoCloseable {
   /** Get current log version id. */
   long getCurrentWALFileVersion();
 
-  /** Get current wal file's size. */
-  long getCurrentWALFileSize();
+  /** Get current wal file's original size. */
+  long getCurrentWALOriginalFileSize();
 
   /** Get current search index. */
   long getCurrentSearchIndex();
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/wal/io/LogWriter.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/wal/io/LogWriter.java
index 6e55ee0bcad..668da2bbd23 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/wal/io/LogWriter.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/wal/io/LogWriter.java
@@ -46,7 +46,6 @@ public abstract class LogWriter implements ILogWriter {
   protected final File logFile;
   protected final FileOutputStream logStream;
   protected final FileChannel logChannel;
-  protected long size = 0;
   protected long originalSize = 0;
 
   /**
@@ -76,7 +75,6 @@ public abstract class LogWriter implements ILogWriter {
               version == WALFileVersion.V1
                   ? WALWriter.MAGIC_STRING_V1.getBytes(StandardCharsets.UTF_8)
                   : 
WALWriter.MAGIC_STRING_V2.getBytes(StandardCharsets.UTF_8)));
-      size += logChannel.position();
     }
   }
 
@@ -108,11 +106,7 @@ public abstract class LogWriter implements ILogWriter {
       bufferSize = buffer.position();
       buffer.flip();
       compressed = true;
-      size += COMPRESSED_HEADER_SIZE;
-    } else {
-      size += UN_COMPRESSED_HEADER_SIZE;
     }
-    size += bufferSize;
     /*
      Header structure:
      [CompressionType(1 byte)][dataBufferSize(4 bytes)][uncompressedSize(4 
bytes)]
@@ -124,7 +118,6 @@ public abstract class LogWriter implements ILogWriter {
     if (compressed) {
       headerBuffer.putInt(uncompressedSize);
     }
-    size += headerBuffer.position();
     try {
       headerBuffer.flip();
       logChannel.write(headerBuffer);
@@ -149,7 +142,7 @@ public abstract class LogWriter implements ILogWriter {
 
   @Override
   public long size() {
-    return size;
+    return logFile.length();
   }
 
   public long originalSize() {
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/wal/io/WALWriter.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/wal/io/WALWriter.java
index 37ca859fab8..4d2d522c45d 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/wal/io/WALWriter.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/wal/io/WALWriter.java
@@ -86,12 +86,10 @@ public class WALWriter extends LogWriter {
     buffer.put(
         (version != WALFileVersion.V2 ? MAGIC_STRING_V1 : MAGIC_STRING_V2)
             .getBytes(StandardCharsets.UTF_8));
-    size += buffer.position();
     writeMetadata(buffer);
   }
 
   private void writeMetadata(ByteBuffer buffer) throws IOException {
-    size += buffer.position();
     buffer.flip();
     logChannel.write(buffer);
   }
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/wal/node/WALNode.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/wal/node/WALNode.java
index 755de60016b..e9fbfb8525c 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/wal/node/WALNode.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/wal/node/WALNode.java
@@ -304,7 +304,7 @@ public class WALNode implements IWALNode {
       long firstVersionId = checkpointManager.getFirstValidWALVersionId();
       if (firstVersionId == Long.MIN_VALUE) {
         // roll wal log writer to delete current wal file
-        if (buffer.getCurrentWALFileSize() > 0) {
+        if (buffer.getCurrentWALOriginalFileSize() > 0) {
           rollWALFile();
         }
       }

Reply via email to