You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ratis.apache.org by wi...@apache.org on 2025/01/09 11:16:24 UTC
(ratis) 02/14: RATIS-2177. Purge should delete segmentLog from small to large according to logIndex (#1174)
This is an automated email from the ASF dual-hosted git repository.
williamsong pushed a commit to branch release-3.1.3
in repository https://gitbox.apache.org/repos/asf/ratis.git
commit d52285d0e71ec36c8812758b09da383f74f39245
Author: 133tosakarin <97...@users.noreply.github.com>
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 a8482e71b..c59c37be8 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
@@ -476,9 +476,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);
}
}
}