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

szetszwo pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ratis.git


The following commit(s) were added to refs/heads/master by this push:
     new 26c1f04cc RATIS-2177. Purge should delete segmentLog from small to 
large according to logIndex (#1174)
26c1f04cc is described below

commit 26c1f04ccae5fd176b9f6071fe6be4b1604a05ef
Author: 133tosakarin <[email protected]>
AuthorDate: Sun Nov 10 10:17:29 2024 +0800

    RATIS-2177. Purge should delete segmentLog from small to large according to 
logIndex (#1174)
---
 .../ratis/server/raftlog/segmented/SegmentedRaftLogWorker.java     | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git 
a/ratis-server/src/main/java/org/apache/ratis/server/raftlog/segmented/SegmentedRaftLogWorker.java
 
b/ratis-server/src/main/java/org/apache/ratis/server/raftlog/segmented/SegmentedRaftLogWorker.java
index a44be6ee5..98b20bade 100644
--- 
a/ratis-server/src/main/java/org/apache/ratis/server/raftlog/segmented/SegmentedRaftLogWorker.java
+++ 
b/ratis-server/src/main/java/org/apache/ratis/server/raftlog/segmented/SegmentedRaftLogWorker.java
@@ -482,9 +482,10 @@ class SegmentedRaftLogWorker {
     void execute() throws IOException {
       if (segments.getToDelete() != null) {
         try(UncheckedAutoCloseable ignored = raftLogMetrics.startPurgeTimer()) 
{
-          for (SegmentFileInfo fileInfo : segments.getToDelete()) {
-            final Path deleted = 
FileUtils.deleteFile(fileInfo.getFile(storage));
-            LOG.info("{}: Purged RaftLog segment: info={}, path={}", name, 
fileInfo, deleted);
+          SegmentFileInfo[] toDeletes = segments.getToDelete();
+          for (int i = toDeletes.length - 1; i >= 0; i--) {
+            final Path deleted = 
FileUtils.deleteFile(toDeletes[i].getFile(storage));
+            LOG.info("{}: Purged RaftLog segment: info={}, path={}", name, 
toDeletes[i], deleted);
           }
         }
       }

Reply via email to