This is an automated email from the ASF dual-hosted git repository.
heiming pushed a commit to branch rel/1.0
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/rel/1.0 by this push:
new ceb563200c [To rel/1.0] Update wal file version after next file has
been created (#8995)
ceb563200c is described below
commit ceb563200c64d610da5e8a5de98df8ac049c2bc1
Author: Alan Choo <[email protected]>
AuthorDate: Mon Feb 13 16:06:20 2023 +0800
[To rel/1.0] Update wal file version after next file has been created
(#8995)
---
.../apache/iotdb/db/wal/buffer/AbstractWALBuffer.java | 17 +++++++----------
1 file changed, 7 insertions(+), 10 deletions(-)
diff --git
a/server/src/main/java/org/apache/iotdb/db/wal/buffer/AbstractWALBuffer.java
b/server/src/main/java/org/apache/iotdb/db/wal/buffer/AbstractWALBuffer.java
index f6defae3b5..aba078743b 100644
--- a/server/src/main/java/org/apache/iotdb/db/wal/buffer/AbstractWALBuffer.java
+++ b/server/src/main/java/org/apache/iotdb/db/wal/buffer/AbstractWALBuffer.java
@@ -30,7 +30,6 @@ import org.slf4j.LoggerFactory;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
-import java.util.concurrent.atomic.AtomicLong;
public abstract class AbstractWALBuffer implements IWALBuffer {
private static final Logger logger =
LoggerFactory.getLogger(AbstractWALBuffer.class);
@@ -40,7 +39,7 @@ public abstract class AbstractWALBuffer implements IWALBuffer
{
/** directory to store .wal files */
protected final String logDirectory;
/** current wal file version id */
- protected final AtomicLong currentWALFileVersion = new AtomicLong();
+ protected volatile long currentWALFileVersion;
/** current search index */
protected volatile long currentSearchIndex;
/** current wal file log writer */
@@ -56,20 +55,18 @@ public abstract class AbstractWALBuffer implements
IWALBuffer {
logger.info("Create folder {} for wal node-{}'s buffer.", logDirectory,
identifier);
}
currentSearchIndex = startSearchIndex;
- currentWALFileVersion.set(startFileVersion);
currentWALFileWriter =
new WALWriter(
SystemFileFactory.INSTANCE.getFile(
logDirectory,
WALFileUtils.getLogFileName(
- currentWALFileVersion.get(),
- currentSearchIndex,
- WALFileStatus.CONTAINS_SEARCH_INDEX)));
+ startFileVersion, currentSearchIndex,
WALFileStatus.CONTAINS_SEARCH_INDEX)));
+ currentWALFileVersion = startFileVersion;
}
@Override
public long getCurrentWALFileVersion() {
- return currentWALFileVersion.get();
+ return currentWALFileVersion;
}
@Override
@@ -96,14 +93,14 @@ public abstract class AbstractWALBuffer implements
IWALBuffer {
}
}
// roll file
+ long nextFileVersion = currentWALFileVersion + 1;
File nextLogFile =
SystemFileFactory.INSTANCE.getFile(
logDirectory,
WALFileUtils.getLogFileName(
- currentWALFileVersion.incrementAndGet(),
- searchIndex,
- WALFileStatus.CONTAINS_SEARCH_INDEX));
+ nextFileVersion, searchIndex,
WALFileStatus.CONTAINS_SEARCH_INDEX));
currentWALFileWriter = new WALWriter(nextLogFile);
+ currentWALFileVersion = nextFileVersion;
logger.debug("Open new wal file {} for wal node-{}'s buffer.",
nextLogFile, identifier);
}