2014-01-09 14 views

Antwort

19

Einige wichtige Unterschiede auf dem Konsens-Ansatz wie bei MongoDB 2.4 sind:

  • Raft ein starker Führer Modell verwendet. Der Leiter ist verantwortlich für die Verwaltung der Replikations- und Datenflüsse vom Vorspann zu anderen Servern. In MongoDB-Replikatgruppen folgen die Secondaries dem Vorgangsprotokoll (oplog) eines Upstream-Hosts, der entweder der primäre oder ein sekundärer mit einem neueren oplog sein kann.

  • Raft hat nur drei zu berücksichtigende Knotenzustände: Leiter (primär), Nachfolger (sekundär) oder Kandidat (nominiert primär). MongoDB hat additional node states zu berücksichtigen, einschließlich mehr potenzielle Fehlerzustände wie RECOVERING oder SHUNNED Knoten oder delayed replica set members.

  • In Raft kann jeder Knoten nur einmal pro Wahltermin für einen Kandidatenknoten stimmen. MongoDB ermöglicht die Anpassung von Stimmen pro Knoten als Teil der Konfiguration des Replikatsatzes, sodass einige Knoten möglicherweise nicht abgestimmt sind oder möglicherweise mehrere Stimmen haben (Anmerkung: Die Konfiguration mit mehreren Bewertungen wurde ab der Version MongoDB 2.5 development branch als veraltet eingestuft).

  • Raft verwendet einen gemeinsamen Konsens Ansatz, der es einem Cluster ermöglicht, während Konfigurationsänderungen weiter zu arbeiten. MongoDB benötigt eine strikte Mehrheit der Voting-Knoten, um eine neue Primary auszuwählen; Während einer Wahl hat der Replikatsatz keine Primärdaten und kann keine Schreibvorgänge akzeptieren.

Weitere Informationen Sie das Raft Papier In Search of an Understandable Consensus Algorithm mit der Dokumentation auf MongoDB Replica Set Elections vergleichen sollte.