0

Ich bin neu in Cassandra.In 2 Knoten Cassandra Cluster wenn RF = 1 und ein Knoten ist unten, kann ich schreiben mit CL = 1 aber kann nicht lesen

Ich habe einen Cluster, der zwei Knoten enthält. Ich habe den Replikationsfaktor auf 1 gesetzt. Wenn jetzt ein Knoten ausfällt, kann ich die Daten ohne Fehler mit Konsistenz = EINS einfügen. Nach dem Einsatz, wenn ich das gleiche tad versuchen dann gibt es mir einen Fehler

Unavailable: code=1000 [Unavailable exception] message="Cannot achieve consistency level ONE" info={'required_replicas': 1, 'alive_replicas': 0, 'consistency': 'ONE'} 

Warum cassandra hat keine Daten vom Koordinatorknoten gelesen haben? Wenn ein Knoten auf UP steht, dann sollte alive_replicas 1 sein, oder?

Ich benutze Cqlsh-Client.

Antwort

1

Replikationsfaktor von 1 bedeutet, dass alle Daten nur einmal vorhanden sind (es ist nicht die Anzahl der zusätzlichen Kopien, sondern die Anzahl der Gesamtkopien). Wenn Sie einen Cluster mit zwei Knoten und RF = 1 haben, befinden sich etwa 50% Ihrer Daten auf Knoten1 und die andere Hälfte auf Knoten2.

Sie können dies überprüfen, mit dem Befehl (überprüfen Sie die Prozentsätze unter die Owns Spalte)

nodetool status your_keyspace_name 

Nun, wenn Sie einen der Knoten ausfällt, dann nur die Tasten zugänglich sind, die auf dem Live-Knoten gespeichert sind, . Dies gilt sowohl für das Lesen als auch für das Schreiben. Somit sind die Operationen, die den Live-Knoten betreffen, erfolgreich, während diejenigen, die den Dead-Knoten betreffen, fehlschlagen. Sie können prüfen, welcher Knoten für einen bestimmten Partition Schlüssel mit dem Befehl

nodetool getendpoints your_keyspace your_table your_key 

So Ihre Frage zu beantworten verantwortlich ist, nehme ich an, dass die erfolgreiche Schreib den Live-Knoten betroffen, während das fehlerhafte Lesen Sie den Knoten betroffen, die nach unten war.

Verwandte Themen