2017-04-06 2 views
1

Ich versuche, das mir zu erklären ..Warum R + W> RF bedeutet sofortige Konsistenz?

Hier ist, wie ich es verstehe:

Angenommen, ich habe 4 Knoten, RF = 3 und CL = QUORUM für beide lesen & schreiben.

In meiner Tabelle (ID, Titel) schreibe ich Daten {ID = 1, title = 'Mytext'} dann schreiben wird Erfolg zurück, wenn 2 Knoten dies erfolgreich schreiben. Sagen wir es ist erfolgreich, wir haben jetzt (mindestens) 2 Knoten mit {id = 1, title = 'mytext'} und möglicherweise einen Knoten mit (id = 1, title = 'olddata')

Dann alle nachfolgenden Lese (wo ID = 1) muss 2 Knoten (QUORUM) mit denselben Daten finden, um erfolgreich zurückzukehren, was nie mit den alten Daten auftreten wird. weil maximal 1 Knoten die alten Daten enthält.

Ist das genau?

Antwort

0

Anzahl der Knoten ist nicht so wichtig, wichtiger ist die RF, d. H. Wie viele Knoten haben die Kopie der Daten. So CL Quorum bedeutet:

2 Knoten haben zur Bestätigung auf Schreib 2 Knoten haben zur Bestätigung auf

lesen

Unter der Haube wird die Anfrage im Moment nicht auf alle Knoten gehen. Basierend auf einigen Statistiken und dem Komponenten-Snitch wählt der Koordinator einen der Knoten, die die Daten haben, und die anderen Knoten werden nur nach einem Hash gefragt, nicht nach den ganzen Daten. Wenn die empfangenen Daten mit dem Hash übereinstimmen, wird sie an den Client zurückgegeben. Ist dies nicht der Fall, fordert der Koordinator die vollständigen Daten von den anderen Knoten an und löst Konflikte mithilfe der Richtlinie für den letzten Schreibvorgang.

Um dies tun zu können, müssen Uhren synchron sein. Normalerweise von der NTP ... aber einige Jungs gehen sogar so weit wie GPS-Empfänger auf Hosts installieren, um die Uhr Skew wirklich eng zu halten.

Kurz gesagt, Ihre Argumentation ist total o.k.

Und wenn Sie wollen ein bisschen mehr über all die Kombination lernen, es tut nicht weh, unter folgendem Link zu sehen: https://www.ecyrd.com/cassandracalculator/

+0

Vielen Dank für Ihre Zeit! Macht alles sehr klar! – jfpicard

+0

kein Problem, ich bin froh zu helfen;) –