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

Split-brain #29

Open
Ephron-WL opened this issue Jan 16, 2025 · 1 comment
Open

Split-brain #29

Ephron-WL opened this issue Jan 16, 2025 · 1 comment
Assignees

Comments

@Ephron-WL
Copy link

I noticed in a 5 node cluster that when the cluster was reduced to 2 nodes, the 2 nodes continue to operate normally. This was no doubt also related to my bug fix to ensure the cluster continued to operate when it was degraded, whether or not a quorum could be established. I'm not sure whether this is a problem or not. A fundamental principle of quorum-based clusters is that if you don't have quorum you probably need to shutdown state changes because the assumption is the remaining set of nodes probably do have the quorum and should be authorative. Would it be reasonable to stop serving API calls if the member count falls below a quorum?

@zarusz
Copy link
Owner

zarusz commented Jan 16, 2025

Yes, I agree. The cluster should go into some error/undefined state. That state should then inform the user code to either stop serving requests or continue - ideally this could be a setting to let users decide depending on their use cases. Sometimes it would be okay to serve request (read only) with the caveat that the reduced cluster state might be stale (split brain). For other use cases the users reads if stalled could not be acceptable. In either case the cluster write/mutating state if cluster is in error/undefined state could fail all these requests (there is no quorum).

Also pleased see my comment on your PR #28 as I think one change is related and perhaps not desired.

@zarusz zarusz assigned zarusz and Ephron-WL and unassigned zarusz Jan 16, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants