Kann mir jemand ein realistisches Beispiel dafür geben, wie der Paxos-Algorithmus in einer verteilten Datenbank verwendet wird? Ich habe viele Artikel über Paxos gelesen, die den Algorithmus erklären, aber keiner von ihnen erklärt wirklich mit einem tatsächlichen Beispiel.
Ein einfaches Beispiel könnte eine Bankanwendung sein, bei der ein Konto durch mehrere Sitzungen modifiziert wird (d. h. eine Einzahlung bei einem Kassierer, eine Debitoperation usw.). Wird Paxos zuerst entscheiden, welche Operation zuerst stattfindet? Was bedeutet das auch für mehrere Instanzen des Paxos-Protokolls? Wie ist wann wird das verwendet? Im Grunde versuche ich alles durch ein konkretes Beispiel und nicht durch abstrakte Begriffe zu verstehen.
Zum Beispiel haben wir MapReduce-System, wo Master aus 3 Hosts besteht. Einer ist Meister und andere sind Sklaven. Die Vorgehensweise bei der Auswahl von Master verwendet den Paxos-Algorithmus.
Auch Chubby von Google Big Table verwendet Paxos: Der Chubby Lock-Dienst für lose gekoppelte verteilte Systeme , < a href="http://research.google.com/archive/bigtable.html"> Bigtable: Ein verteiltes Speichersystem für strukturierte Daten
Die Clustrix -Datenbank ist eine verteilte Datenbank, die Paxos im Transaktionsmanager verwendet. Paxos wird von den Interna der Datenbank verwendet, um Nachrichten zu koordinieren und die Transaktionsatomizität in einem verteilten System zu erhalten.
Die folgenden Schritte werden ausgeführt, wenn ein Transaktions-Commit ausgeführt wird:
Dies ist für die Anwendung transparent und in den internen Daten der Datenbank implementiert. Für Ihre Banking-Anwendung müsste die Anwendungsebene also die Ausnahmebehandlung für Deadlock-Konflikte durchführen. Der andere Schlüssel für die Skalierung einer Datenbank ist die Parallelität, die im Allgemeinen über MVCC (Multi-Version Concurrency Control) unterstützt wird.
Tags und Links algorithm distributed paxos consensus