2009-11-20 14 views
6

Cassandraには、オーダーされたパーティショナーを使用するときに表示される自動ロード・バランシングがありません(あるグループの行のある共通の値域は比較的少数のマシンに格納され、クエリ)。
What's The Best Practice In Designing A Cassandra Data Model?Cassandraのロードバランシングと順序付けられたパーティショナー?

私はまだカサンドラには新しく、どのように機能していますか?どのようにしてこの問題を避けることができますか?そのため、範囲照会はまだ可能ですか?私は実際にキーにハッシュを追加するという上記の答え(リンクされたURL)を得られませんでした。

+0

私は、このブログで 'キーに追加しているハッシュ'のアイデアについて詳しく知りました。 http://blog.evanweaver.com/articles/2009/07/06/up-and-running-with-cassandra/ – deepblue

答えて

4

私はこの問題が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つのハッシュ値)

8

他のポストで述べたように、Cassandra 0.5は半自動ロードバランシングをサポートしています。ノードにロードバランスを伝えるだけで、トークンリング上のよりビジーな場所に自動的に移動します。

。これはcassandra.yamlpartitionerパラメータによって制御されるクラスタ間でのデータのhttp://wiki.apache.org/cassandra/Operations

+0

リンクがもう機能していません。ドキュメンテーションが動かされたことを伝えるページを私たちに送って、ドキュメントのルートに私たちを連れて行きました。また、ノードロードバランスのために*を教えてください。なぜ誰にでも何かを伝えなければならないのですか?また、なぜ混雑している場所に移動したいのかは不明ですが、負荷分散は一般的に反対です。多分あなたは明確にしようとすることができますか? –

1

パーティショニングで覆われている:行のキーのためのランダムなハッシュコードを生成し、ロードバランシングを実行しますMurmur3Partitionerを使用して

partitioner: org.apache.cassandra.dht.Murmur3Partitioner 

Cassandra 2.0では、複数のトークン(256)を1台のサーバーに格納することができ、負荷分散にも役立ちます。 OrderPreservingPartitionerを使用することはあまり推奨されておらず、推奨されていません。

+0

問題は、2009年にカッサンドラ0.5の時代を尋ねていたことに注意してください...そうですが、私は、パーティショナーは一般的にカサンドラクラスターの負荷を分散すると予想されることに同意します。 –

関連する問題