Wie wichtig ist es, die Lesereparatur in Cassandra zu aktivieren?

8

Wenn ich es richtig verstehe, wird der Schreibvorgang bei einer Schreibanforderung an alle N Replikate gesendet, und die Operation ist erfolgreich, wenn die ersten W Antworten empfangen werden. Ist das korrekt?

Wenn ja, dann scheint es, dass alle Replikate zusammen mit Hinted Handoff so schnell wie möglich alle Schreibvorgänge erhalten. Müssen wir in diesem Fall wirklich eine Lesereparatur machen?

Danke.

    
Gary Chang 31.05.2011, 02:55
quelle

3 Antworten

9

Kurze Antwort: Sie müssen noch eine Reparatur lesen.

Längere Antwort: Es gab keine gute Diskussion über die Andeutung von Hinted Handoff, also Ich schrieb eine .

Lesen Sie für Cassandra 1.0+ den aktualisierten Artikel . Der entscheidende Teil ist:

  

Auf den ersten Blick scheint es, dass Sie mit Hinted Handoff sicher entkommen können, ohne eine Reparatur zu benötigen. Dies gilt nur, wenn Sie nie einen Hardwarefehler haben.

    
jbellis 31.05.2011, 21:26
quelle
2

Es ist möglich, dass eine angedeutete Übergabe aus verschiedenen Gründen fehlschlägt. So wie der Knoten, in den der Hinweis geschrieben wurde, kann fehlschlagen. Wenn die Lesereparatur aktiviert ist, wenn die angedeutete Weiterreichung aus irgendeinem Grund nicht funktioniert, wird sie durch die Reparatur repariert. Und dann sollten Sie auch "nodetool repair" auf Ihren Knoten ausführen, um alle Fälle abzufangen, bei denen sowohl die Reparatur als auch die angedeutete Übergabe fehlschlagen, um alle Daten zu reparieren.

Sieh dir das Wiki an, um weitere Informationen zu erhalten.

Ссылка

Ссылка

    
Zanson 31.05.2011 19:14
quelle
1

Die Konsistenzstufe kann für jeden Schreibvorgang (und Lesevorgang) variiert werden.

Nehmen wir beispielsweise an, wir haben 10 Knoten mit einem Replikationsfaktor von 3.

Wenn wir jedoch mit einer Konsistenzstufe von ANY schreiben, kann möglicherweise keines der drei möglichen Replikate die Daten initialisieren, wenn der Schreibaufruf zurückkehrt. Wenn wir die Konsistenzstufe ONE verwenden, muss nur eines der drei möglichen Replikate die Daten enthalten, bevor der Schreibvorgang zurückkehrt. Daher kann ein Lesevorgang direkt nach dem Schreibvorgang veraltete Daten anzeigen, wenn der Lesevorgang eine niedrige Konsistenz aufweist Ebene.

Siehe Ссылка für die Definitionen der Konsistenzstufen, insbesondere die folgenden:

  

Lesen Sie Level ONE: Wird den Datensatz zurückgeben   zurückgegeben von der ersten Replik an   reagieren. Eine Konsistenzprüfung ist immer möglich   getan in einem Hintergrundthread, um irgendwelche zu reparieren   Konsistenzprobleme wann   ConsistencyLevel.ONE wird verwendet. Dies   bedeutet, dass nachfolgende Anrufe haben   Korrigieren Sie die Daten auch beim ersten Lesen   erhält einen älteren Wert. (Das nennt man   ReadRepair)

Siehe auch Ссылка :

  

Read repair bedeutet, dass wenn eine Abfrage ist   gemacht gegen einen bestimmten Schlüssel, führen wir ein   Digest-Abfrage für alle Replikate   des Schlüssels und schiebe das Neueste   Version auf nicht mehr aktuelle Repliken.   Wenn eine niedrige ConsistencyLevel war   angegeben, dies geschieht in der   Hintergrund nach dem Zurückgeben der Daten   von der nächsten Replik zum   Klient; Ansonsten ist es vorher getan   die Daten zurückgeben.

    
DNA 31.05.2011 08:05
quelle

Tags und Links