2

4つのインスタンスのcannsadraクラスター(cassandra-1.1)を構成しました。私は2台のPCを持っており、各PCで2つのインスタンスを実行しています。PCは同一で、20GのRAMを搭載しています。しかし、nodetoolを実行していると、異なる所有率が表示されます。問題はなぜですか?

./bin/nodetool  -p 8001 ring

Note: Ownership information does not include topology, please specify a keyspace. 
Address         DC          Rack        Status State   Load            Owns                     Token                                                                                                                                   51042355038140769519506191114765231718      
172.16.40.32    datacenter1 rack1       Up     Normal  11.12 KB        70.00%              0                                           
127.0.0.2       datacenter1 rack1       Up     Normal  11.31 KB        10.00%              17014118346046923173168730371588410572      
172.16.40.202   datacenter1 rack1       Up     Normal  6.7 KB          10.00%              34028236692093846346337460743176821145      
127.0.0.3       datacenter1 rack1       Up     Normal  11.18 KB        10.00%              51042355038140769519506191114765231718 

私の無料の-mは両方のマシンを調べます:

        total       used       free     shared    buffers     cached
Mem:         20119       9621      10497          0        281       7925
-/+ buffers/cache:       1414      18704
Swap:         2894          2       2892
4

1 に答える 1

3

パーセンテージは、ノード全体のトークンの分布によって決まります。Cassandra のトークン範囲は 0 から 2^127 (170141183460469231731687303715884105728) です。リングのトークンは 0 から 2^127 の間で均等に分散されていないため、所有権が 70% のノードが 1 つあります。nodetool moveリングのバランスを整えるために使用できます。

Cassandra wikiには、バランスの取れたトークンを生成する簡単な Python スクリプトがあります。また、リング トポロジを視覚化するための簡単なツールも作成しました。

于 2012-07-23T16:45:57.410 に答える