1 / 20

Paxos

Paxos. The ultimate consensus ?. Vortragsaufbau. Teil I – Einführung Funktionsweise des Paxos – Algorithmus Kommunikationsprimitiven Rundenablauf Beispielrunden Teil 2 – Paxos formal Paxos als I/O – Automat Beweis von Validity und Agreement. PAXOS.

khuong
Download Presentation

Paxos

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Paxos The ultimate consensus ?

  2. Vortragsaufbau Teil I – Einführung • Funktionsweise des Paxos – Algorithmus • Kommunikationsprimitiven • Rundenablauf • Beispielrunden Teil 2 – Paxos formal • Paxos als I/O – Automat • Beweis von Validity und Agreement

  3. PAXOS • Name einer alten griechischen Hochkultur • Leslie Lamport beschrieb den Paxos-Algorithmus als Ergebnis archäologischer Studien dieser Kultur (L.Lamport[98]-„The part-time parliament“) • Höchst fehlertoleranter Distributed-Consesus-Algorithmus, der Validity, Agreement und unter Umständen auch Termination garantiert

  4. Complete Paxos

  5. Basic Paxos • Sichert Validity und Agreement • Termination nur unter der Annahme eines einzigen Leaders

  6. Externe Primitiven von PAX • NewRound(value) : Startet eine neue Runde • RndSuccess(value‘) : Meldet eine Entscheidung • Neue Runden können beliebig oft gestartet werden.

  7. Validity & Agreement • Validity: Trivial • Agreement: Alle per RndSuccess(v) gemeldeten v müssen identisch sein

  8. Komponenten von PAX • 2 unabhängige Komponenten • Leader-Komponente bietet die externen Primitiven NewRnd(v) und RndSuccess(v‘) • Acceptor dient nur interner Kommunikation

  9. Interne Kommunikation • Jede Leader-Komponente kommuniziert nur mit Acceptor-Komponenten (auch mit der eigenen)

  10. Runden • Paxos läuft in Form von „Runden“ aus N x P • Es existiert eine Ordnung auf den Runden:r < r‘ gdw. (r.n < r‘.n) oder ( (r.n = r‘.n) und (r.p < r‘.p) ) • Jede Runde r hat maximal 1 zugehörige Leader-Komponente • Jede Nachricht zwischen Leader und Acceptors trägt diese Rundennummer r

  11. Component states • Rot: „Aktuelle Rundennummer“ • Grün: „Höchste bekannte erfolgreiche Runde“ • Blau: „Value der höchsten bekannten erfolgreichen Runde“

  12. NewRound(v) • Leader: CurRnd := CurRnd+ 1HighestRnd := 0RndVal := v

  13. Collect()^r • Leader sendet Collect()^CurRnd an alle Acceptor

  14. Join(r‘,v‘)^r • Acceptors: IF (r > Commit) Commit = r ;Send(Join, LastR, LastV)^r • Leader: IF (r‘ > HighestRnd) HighestRnd = r‘ ; RndVal = v‘

  15. Store(val)^r • Sobald der Leader von einer Mehrheit der Prozesse Join-Nachrichten bekommen hat, sendet er allenAcceptors ein Store(RndVal)^CurRnd

  16. Accept()^r • Acceptors:if ( r >= Commit ) Commit = r ; LastR = r ; LastV = val; Send(Accept)^r • Leader:Sobald von einer Mehrheit der Acceptors Accept-Nachrichten empfangen wurde, wird RndSuccess(RndVal) ausgeführt.

  17. Kompaktes Beispiel

  18. Frage • Was passiert wenn nun ein andere Leader eine Runde 1‘ mit einem anderen Value v‘ startet ? • Angenommen der neue Leader hat eine höhere Prozessnummer, d.h. seine Runde 1‘ ist höher als die Runde 1 des alten Leaders.

  19. Kompaktes Beispiel (Forts.)

  20. Teil II Paxos als I/O - Automat

More Related