Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RATIS-624. RaftServer should support pause/ unpause in its LifeCycle state #183

Closed
wants to merge 1 commit into from

Conversation

amaliujia
Copy link
Contributor

What changes were proposed in this pull request?

An effort to suppor pause in Raft, which can be used to pause a server (most likely follower).

What is the link to the Apache JIRA

https://issues.apache.org/jira/browse/RATIS-624

How was this patch tested?

N/A

@amaliujia amaliujia marked this pull request as draft August 26, 2020 07:16
@amaliujia
Copy link
Contributor Author

@szetszwo @hanishakoneru

I am working on adding pause to Ratis. As RATIS-624 describes, it is useful when a follower is lagging behind. When that happens, we can pause that follower and then do a snapshot install to help that follower catches up.

This PR is still WIP. As I kept hacking a solution, I realized it is a fairly complicated change (at least to me).

Can I ask for some help: am I working on the right track? Am I adding the API in the right classes (e.g. RaftClient, RaftServerProxy, etc.) Any suggestions that I can improve my current thought?

@amaliujia
Copy link
Contributor Author

Or, can I tackle this problem by starting from server implementation without considering client/rpc call? (not sure as this is the first time I touch Ratis core).

@szetszwo
Copy link
Contributor

I have briefly checked the code change. Let's discuss the design in the JIRA.

@amaliujia
Copy link
Contributor Author

Per the discussion in JIRA, this work will break into several JIRA so will close this draft now.

@amaliujia amaliujia closed this Aug 27, 2020
@amaliujia amaliujia deleted the RATIS-624 branch August 28, 2020 04:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
2 participants