1

ほんの一例: Cassandra ノードが 2 つあり、ノードごとに 1Gb のデータがあり、レプリケーション ファクターは 1 です。次のように、100Mb sstable サイズの Leveled Compaction で単一列ファミリーを使用します。

create column family ColFamily with key_validation_class=UTF8Type 
  and compaction_strategy=LeveledCompactionStrategy 
  and compaction_strategy_options={sstable_size_in_mb: 100};

ノードを追加したい。データは 3 つのノード間で再調整されます: ノードあたり ~0,667 Mb。右?

しかし、リバランスのプロセスが進行している間、各ノードの使用済みスペースはどのように増加するのでしょうか? ピークはどうなる?

4

2 に答える 2

2

新しいノードを追加するために使用される追加のスペースはありません。ただし、移動からスペースを回復するためにトークン範囲が縮小したノードでクリーンアップを実行する必要がありますが、最初にリング (トークンの移動) を再調整して均等に分散する必要があります。

このプロセスは、Datastax の Web サイトにある Cassandra のドキュメントに詳しく説明されています。私が説明するよりもはるかに適切で簡潔な説明が記載されています。

これに加えて、いくつかのコメント:

  • 平準化の100MBは少し高いようです。実際、1GB のデータしかない場合は、ほぼ確実です。(通常は非常に適切な) デフォルトから逸脱する正当な理由はありますか?
  • RF が 3 未満であることは、本番環境で必要になることはほとんどありません。
  • Richard が述べたように、vnode を確認する必要があります。これらはまだデフォルトではありませんが、cassandra 1.2.x を実行している限り、試してみる価値があります。
于 2013-05-01T17:21:08.790 に答える