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

Reply via email to