3

さまざまな構成で Cassandra クラスターの動作をテストしています。それらの 1 つは、ByteOrderedPartitioner を使用してノードに沿ってキーを分散します。

データ モデルは、0 から 9999 までの値を持つキーとして整数 (IntegerType) を持つファット行で作成されます。このようにして、10 個のノードのリングを設定しました。

Address      Rack    Status    State            Owns    Token
                                                     Token(bytes[0900])
node1         Up     Normal  5.14 MB         10.00%  Token(bytes[00])
node2         Up     Normal  377.42 MB       10.00%  Token(bytes[0100])
node3         Up     Normal  373.06 MB       10.00%  Token(bytes[0200])
node4         Up     Normal  966.15 KB       10.00%  Token(bytes[0300])
node5         Up     Normal  953.4 KB        10.00%  Token(bytes[0400])
node6         Up     Normal  953.26 KB       10.00%  Token(bytes[0500])
node7         Up     Normal  944.54 KB       10.00%  Token(bytes[0600])
node8         Up     Normal  953.4 KB        10.00%  Token(bytes[0700])
node9         Up     Normal  962.42 KB       10.00%  Token(bytes[0800])
node10        Up     Normal  961.31 KB       10.00%  Token(bytes[0900])

ただし、すべての負荷は node2 とレプリカの node3 にかかります。

これらのトークンが機能しないのはなぜですか? どうすれば修正できますか?

4

1 に答える 1

3

まず、各ノードでクリーンアップを実行して、ブートストラップ後にノードが担当しなくなった余分なデータが表示されないようにする必要があります。

それが完了したら、getRangeKeySampleJMXメソッドを使用してノード上のキーのサンプルを取得できます。次に、必要に応じて、トークンを、適切な量のキーを隣接するキーに移動する値に調整できます。

つまり、この問題を正確に回避するために、ほぼ確実にRandomPartitioner代わりに使用する必要があります。このような投稿で、パーティションキーでクラスタリングを使用して、BOPを使用したくなるような順序付けを行う方法を説明しました。

于 2012-06-20T00:56:57.577 に答える