2016-07-13 17 views
1

Ich habe einen 3-Knoten-Cassandra-Cluster mit einem Replikationsfaktor von 3. Dies bedeutet, dass alle Daten Replikation auf allen 3 Knoten sein sollten.Warum ist die Last bei einem 3-Knoten-Cluster mit RF 3 anders?

Im Folgenden ist der Ausgang des nodetool Status:

-- Address  Load  Tokens  Owns (effective) Host ID        Rack 
UN 192.168.0.1 27.66 GB 256   100.0%   2e89198f-bc7d-4efd-bf62-9759fd1d4acc RAC1 
UN 192.168.0.2 28.77 GB 256   100.0%   db5fd62d-3381-42fa-84b5-7cb12f3f946b RAC1 
UN 192.168.0.3 27.08 GB 256   100.0%   1ffb4798-44d4-458b-a4a8-a8898e0152a2 RAC1 

Dies ist eine graphische Darstellung der Festplattennutzung im Laufe der Zeit auf allen 3 der Knoten:

Cassandra disk usage over time

Meine Frage ist, warum tun diese Größen variieren so sehr? Ist die Verdichtung nicht gleichzeitig gelaufen?

Antwort

3

Ich würde sagen, mehrere Faktoren könnten hier eine Rolle spielen.

Wie Sie bemerken, wird die Komprimierung nicht zur selben Zeit ausgeführt, so dass die Anzahl und der Inhalt der SSTables auf jedem Knoten etwas anders sind.

Die Memtables wurden auch nicht gleichzeitig auf SSTables geleert, also hat jeder Knoten von Anfang an etwas unterschiedliche SSTables.

Wenn Sie die Komprimierung für die SSTables verwenden, da ihre Inhalte etwas anders sind, wird der durch die Komprimierung der Daten eingesparte Speicherplatz etwas variieren.

Und obwohl Sie einen Replikationsfaktor von drei verwenden, stelle ich mir vor, dass sich der Speicherplatz für nicht primäre Bereichsdaten etwas von dem Speicherplatz für primäre Bereichsdaten unterscheidet und wahrscheinlich mehr primäre Bereichsdaten vorhanden sind auf den einen oder anderen Knoten abgebildet.

Also im Grunde, wenn jeder Knoten genau die gleiche Sequenz von Nachrichten zur genau gleichen Zeit sah, dann hätten sie nicht genau die gleiche Größe der Daten.