Skip to content

Tensions in Practice: Reconfiguration flexibility in tension with transition coordination

Replicated cluster · three voters becoming five

A cluster is growing from A, B and C to include D and E. An old majority could be A and B, while a new majority could be C, D and E: the two majorities need not share a member. A supported transition protocol must prevent those groups from deciding independently. It can use an explicit joint state or restrict change to safely committed one-server steps.

Change membership as needed

Add or replace participants without freezing the cluster’s membership forever.

Preserve one decided history

Keep authority to decide coherent during the transition, not only before and after it.

Why these aims pull against each other

Overlapping membership lists do not imply that every old majority intersects every new majority. The transition must impose its own coordination discipline.

Compare the arrangements

Use a joint state

Route the change through a committed joint configuration before committing the final membership.

What it protects
The transition explicitly binds the old and new decision rules while supporting the planned membership change.
What it costs
Progress during the joint phase depends on obtaining both required majorities; the transition is more complex than an ordinary steady-state vote.
When it fits
Fits a protocol with a correctly implemented joint-configuration procedure and sufficiently responsive, caught-up participants.

Illustration note: The two example majorities demonstrate the hazard of an uncoordinated cutover. Quorum intersection alone is not a complete consensus protocol or a guarantee of availability.

Change one server at a time

Use the protocol’s one-server-at-a-time rule: commit D’s addition, then separately commit E’s addition.

What it protects
Each change is smaller and can avoid an explicit joint membership under the supported protocol.
What it costs
The overall change needs multiple ordered steps; arbitrary bulk replacements cannot be performed as one such step.
When it fits
Fits a protocol that explicitly supports safe single-server changes and an operational need compatible with sequential membership changes.

Illustration note: The diagram assumes correct commit, catch-up and authority rules. It does not claim that any majority system becomes safe merely by adding one server at a time.

What this illustration does—and does not—establish

Consensus: Static Membership versus View Change (temporal) identifies reconfiguration as a separate safety boundary. The related mechanism explicitly supplies joint and one-server alternatives; the finite voter sets illustrate why the boundary matters.

  • The example uses majority voting in the chosen crash-fault setting; it is not a Byzantine threshold specification.
  • New participants must have usable replicated state before their votes are relied on; counting an unavailable new voter can reduce availability.
  • A protocol can preserve agreement while blocking under failure. No no-downtime guarantee is inferred here.

Source entries

Consensus

Prime · Source of the tension

Consensus: Static Membership versus View Change (temporal) supplies the conflict examined here.

Static Membership versus View Change (temporal)

A system proven safe per-configuration can still be unsafe at the seams between configurations.

Read the source section

Joint-Consensus Membership Change

Mechanism · Related concept

Supplies two supported transition shapes and committed authority changes.

Tuning parameters

- Joint-config vs. single-server steps — the full joint-consensus dance for arbitrary changes, or a simpler "add/remove one at a time" rule that avoids an explicit joint configuration. Single-server steps are easier to reason about but only cover incremental changes.

Read the source section

How it works

- Reconfigure via the agreement path itself. Each configuration change is proposed and committed like any other value, so it inherits the same commit safety rather than needing a separate mechanism. - Move one step at a time. Changes are applied incrementally (a single joint step, or one server at a time), keeping the required overlap between successive memberships. - Shift authority only at commit points. Who is entitled to vote changes exactly when a configuration commits — never in the ambiguous space between.

Read the source section