私はこの問題がcassandra-userメーリングリストで最もうまく解決されると思います。それは人々がいる場所です。
カサンドラは自動ロードバランシングがありませんまだですが、あまりにも遠い将来にそうするかもしれません。 0.5ブランチはこれを実行できる可能性があります。
すでに実行中のシステムでノードをブートストラップすると、リング内で最も負荷が分散されてそこに配置される場所が見つかるはずです。一度に1つずつノードを追加すると(つまり、あるノードが別のノードを追加する前にブートストラップを完了するのを待つ)、鍵の配布が時間の経過とともにあまり変化しなければ、うまくいくはずです。
ただし、キーは時間の経過とともに(特にタイムベースの場合)変更される可能性があります。回避策が必要な場合があります。
これは、レンジスキャンの対象によって異なります。範囲のスキャンが必要なのは、キーのPARTです。範囲スキャンにしたくないビットをハッシュし、それをキーの最初の部分として使用できます。
あなたが特定のパーティション内のキーをスキャン範囲にしたい場合は、今すぐスキャン
function makeWholeKey(partition, key) {
return concat(make_hash(partition), partition, key);
}
を範囲にしたくない私は、キーの一部を参照するために、ここで用語「パーティション」を使用します
あなたはmakeWholeKey(p、start)とmakeWholeKey(p、end)の間をスキャンすることができます
しかし、パーティションをスキャンしたい場合、あなたは不運です。
しかし、あなたのノードにはmake_hash()の出力の範囲で均等に分散したトークンを持たせることができ、均等に分散したデータを得ることができます(1つまたは2つのハッシュ値)
私は、このブログで 'キーに追加しているハッシュ'のアイデアについて詳しく知りました。 http://blog.evanweaver.com/articles/2009/07/06/up-and-running-with-cassandra/ – deepblue