Versions Compared

Key

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

...

ALPO uses a two-step approach to handling leader crashes.  First, it makes sure that the new leader is chosen from among those servers whose 's log is complete (i.e. it includes all of the guaranteed entries).  It does this by extending choosing the new leader from among those servers whose log is complete. ALPO extends the notion of rank during leader election to include log length. When candidates request votes they include in the request the log id of the most recent entry they have accepted. One candidate automatically outranks another if its "last accepted id" is higher than that of the other candidate. If they both have the same "last accepted id", then rank is determined by server id. Furthermore, a server will automatically reject a request for its vote if its "last accepted id" is higher than that of the requesting candidate, even if its vote is still available; when a candidate receives this form of rejection it drops out of the election and returns to passive state.

The second step in handling leader crashes is ensuring log consistency of the passive servers. When a new leader takes over, its log is completely up-to-date, but logs on other servers may be inconsistent in two ways:

...