2016-07-13 5 views
1

私は3のノードを持つカサンドラクラスタを持っています。 これは、すべてのデータが3つのノードすべてに複製されるべきであることを意味します。RF 3の3ノードクラスタで負荷が異なるのはなぜですか?

次はnodetool状態の出力です:

-- 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 

これは、すべてのノード3の時間をかけてディスク使用量のグラフである:

Cassandra disk usage over time

行うなぜ私の質問がありますこれらのサイズはそんなに変わっていますか?それは圧迫が同時に行われていないのですか?

答えて

3

私はいくつかの要因がここで役割を果たすと言います。

コンパイルは同時に実行されないため、SSTablesの数と内容は各ノードで多少異なります。

memtablesもSSTablesに同時にフラッシュされません。そのため、最初から各ノードには多少異なるSSTablesがあります。

SSTablesに圧縮を使用している場合は、内容が多少異なるため、データを圧縮して保存される領域の量は多少異なります。

レプリケーションファクタ3を使用していても、プライマリレンジデータのストレージスペースがプライマリレンジデータのストレージスペースとわずかに異なると思われます。プライマリレンジデータがより多く存在する可能性があります1つのノードまたは他のノードにマッピングされる。

基本的に、各ノードがまったく同じ時刻に正確に同じメッセージシーケンスを見た場合を除き、それらはまったく同じサイズのデータ​​を持っていません。

関連する問題