diff --git a/server/src/main/java/com/github/dtprj/dongting/raft/rpc/AppendProcessor.java b/server/src/main/java/com/github/dtprj/dongting/raft/rpc/AppendProcessor.java index 581bcacb..75c973ad 100644 --- a/server/src/main/java/com/github/dtprj/dongting/raft/rpc/AppendProcessor.java +++ b/server/src/main/java/com/github/dtprj/dongting/raft/rpc/AppendProcessor.java @@ -37,6 +37,7 @@ import com.github.dtprj.dongting.raft.impl.RaftStatusImpl; import com.github.dtprj.dongting.raft.impl.RaftTask; import com.github.dtprj.dongting.raft.impl.RaftUtil; +import com.github.dtprj.dongting.raft.impl.TailCache; import com.github.dtprj.dongting.raft.server.LogItem; import com.github.dtprj.dongting.raft.server.RaftGroup; import com.github.dtprj.dongting.raft.server.RaftInput; @@ -413,6 +414,9 @@ private FrameCallResult resumeWhenFindReplicatePosFinish(Pair pos private FrameCallResult truncateAndAppend(long matchIndex, int matchTerm) { gc.getRaftStatus().setTruncating(true); long truncateIndex = matchIndex + 1; + + TailCache tailCache = reqInfo.getRaftGroup().getGroupComponents().getRaftStatus().getTailCache(); + tailCache.truncate(truncateIndex); return Fiber.call(gc.getRaftLog().truncateTail(truncateIndex), v -> afterTruncate(matchIndex, matchTerm)); } diff --git a/server/src/main/java/com/github/dtprj/dongting/raft/store/DefaultRaftLog.java b/server/src/main/java/com/github/dtprj/dongting/raft/store/DefaultRaftLog.java index 01463191..8860e6f4 100644 --- a/server/src/main/java/com/github/dtprj/dongting/raft/store/DefaultRaftLog.java +++ b/server/src/main/java/com/github/dtprj/dongting/raft/store/DefaultRaftLog.java @@ -28,7 +28,6 @@ import com.github.dtprj.dongting.raft.impl.FileUtil; import com.github.dtprj.dongting.raft.impl.RaftStatusImpl; import com.github.dtprj.dongting.raft.impl.RaftUtil; -import com.github.dtprj.dongting.raft.impl.TailCache; import com.github.dtprj.dongting.raft.server.LogItem; import com.github.dtprj.dongting.raft.server.RaftGroupConfigEx; import com.github.dtprj.dongting.raft.sm.RaftCodecFactory; @@ -136,8 +135,6 @@ public FiberFrame truncateTail(long index) { return new FiberFrame<>() { @Override public FrameCallResult execute(Void input) { - TailCache tailCache = raftStatus.getTailCache(); - tailCache.truncate(index); return Fiber.call(idxFiles.loadLogPos(index), this::afterPosLoad); }