Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • operation reconfig(M’)
    1. If no quorum of M’ is connected or the connected quorum is too far behind M return failure
    2. If leader(M) is in M’, designate leader(M) to be leader(M’)
    3. Otherwise, designate the most up-to-date server in connected quorum of members(M’) M' to be leader(M’)
    4. Schedule the reconfiguration last in the queue of operations
      Phase 1:
    5. New operations (received by leader(M) during phase-1) will be sent to both M and M', s.t.:
      1. No commits are sent by leader(M) to members(M')
      2. Client submitting the operation can be acked as soon as either of the following happens:
        • a quorum of members(M) acks the operation
        • phase-2 completes
    6. send <reconfig-start, version(M), M’> to members(M)
    7. wait for <reconfig-start-ack> from quorum of members(M)
      Phase 2:
    8. Stop processing new operations, return failure for any further ops received
    9. send <activate-config, M’, leader(M’) > to members (M’)
    10. wait for <activate-config-ack> from quorum of members (M’)
      Phase 3:
    11. send <retire M> to members(M)

...