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();
}
}