-
Notifications
You must be signed in to change notification settings - Fork 146
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
Consider allowing to change node address in one step instead of removing-then-adding #875
Comments
👋 Thanks for opening this issue! Get help or engage by:
|
drmingdrmer
added a commit
to drmingdrmer/openraft
that referenced
this issue
Jun 22, 2023
During dynamic cluster changes, we sometimes need to update an existing node, for example changing its network address. Adding `SetNodes` variant to `ChangeMembers` allows replacing an existing node directly. However, this also carries risk of creating a split brain scenario if used incorrectly. - Fix: datafuselabs#875
drmingdrmer
added a commit
to drmingdrmer/openraft
that referenced
this issue
Jun 22, 2023
During dynamic cluster changes, we sometimes need to update an existing node, for example changing its network address. Adding `SetNodes` variant to `ChangeMembers` allows replacing an existing node directly. However, this also carries risk of creating a split brain scenario if used incorrectly. - Fix: datafuselabs#875
drmingdrmer
added a commit
that referenced
this issue
Jun 22, 2023
During dynamic cluster changes, we sometimes need to update an existing node, for example changing its network address. Adding `SetNodes` variant to `ChangeMembers` allows replacing an existing node directly. However, this also carries risk of creating a split brain scenario if used incorrectly. - Fix: #875
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
When adding an existing node as a learner with a new address the old address remains unchanged.
There should be a way to update Node directly without removing-then-adding.
But this has risk of leading to brain split. Use it with caution.
Incorrect updating node could occur if the new address belongs to another node, leading to
two elected leaders.
Consider a 3-node cluster (
a, b, c
, with addressesx, y, z
) and anuninitialized node
d
with addressw
:Allowing direct address changes (e.g.,
b
's address fromy
tow
) wouldenable both
x, y
andz, w
to form quorums and elect leaders.c
proposes ChangeMembership:{a:x, b:w, c:z}
;c
andd
grantc
;c
elects itself as leaderc
andd
confirmc
as leadera
elects itself as leadera
andb
confirma
as leaderIt's best to avoid updating Node directly
The text was updated successfully, but these errors were encountered: