This is an automated email from the ASF dual-hosted git repository. szetszwo pushed a commit to branch branch-2 in repository https://gitbox.apache.org/repos/asf/ratis.git
commit 2442d23a095c7cdf891cd5dab8429110a97c5023 Author: Yaolong Liu <[email protected]> AuthorDate: Tue Jul 5 02:08:56 2022 +0800 RATIS-1611. Add notify server step sown event to inform (#669) --- .../src/main/java/org/apache/ratis/statemachine/StateMachine.java | 5 +++++ .../src/main/java/org/apache/ratis/server/impl/LeaderElection.java | 1 + 2 files changed, 6 insertions(+) diff --git a/ratis-server-api/src/main/java/org/apache/ratis/statemachine/StateMachine.java b/ratis-server-api/src/main/java/org/apache/ratis/statemachine/StateMachine.java index 6373fa9b..6754d50b 100644 --- a/ratis-server-api/src/main/java/org/apache/ratis/statemachine/StateMachine.java +++ b/ratis-server-api/src/main/java/org/apache/ratis/statemachine/StateMachine.java @@ -192,6 +192,11 @@ public interface StateMachine extends Closeable { * completely done. Could trigger the cleanup of snapshots. */ default void notifySnapshotInstalled(InstallSnapshotResult result, long snapshotIndex) {} + + /** + * Notify the {@link StateMachine} that a raft server has step down. + */ + default void notifyServerShutdown(RoleInfoProto roleInfo) {} } /** diff --git a/ratis-server/src/main/java/org/apache/ratis/server/impl/LeaderElection.java b/ratis-server/src/main/java/org/apache/ratis/server/impl/LeaderElection.java index 0f2515cb..1255046c 100644 --- a/ratis-server/src/main/java/org/apache/ratis/server/impl/LeaderElection.java +++ b/ratis-server/src/main/java/org/apache/ratis/server/impl/LeaderElection.java @@ -322,6 +322,7 @@ class LeaderElection implements Runnable { case NOT_IN_CONF: case SHUTDOWN: server.getRaftServer().close(); + server.getStateMachine().event().notifyServerShutdown(server.getRoleInfoProto()); return false; case TIMEOUT: continue; // should retry
