MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Warum erfordert ein Mongodb-Replikatsatz eine ungerade Anzahl von Abstimmungsknoten?

Stellen wir uns vor, dass ein Replikatsatz eine gerade Anzahl von Knoten hat (z. B. 4). Dann passiert eine unglückliche Netzwerkpartition, die das Set in zwei Hälften teilt (2 + 2). Welche Partition soll Schreibvorgänge akzeptieren? Zuerst? Zweite? Beide? Was soll passieren, wenn das Netzwerk wiederhergestellt wird? Das sind alles schwierige Fragen.

Eine ungerade Anzahl von Knoten eliminiert die Fragen vollständig. Das Set kann nicht genau in zwei Hälften geteilt werden. Der größere Teil akzeptiert also Schreibvorgänge (um genau zu sein, muss der Knoten mehr als die Hälfte der Knoten (einschließlich sich selbst) sehen, um als primär gewählt zu werden. Es ist also 1 von 1, 2 von 3, 3 von 5, 4 von 7 und so weiter ).