2017-10-24 37 views
1

私はCassandraを使い慣れていないので、ノードとvnodeの概念について混乱しています。ノードとvnodeの違い

ここで私は読んでいたものです:カサンドラの要素の階層は次のとおりです。 クラスタ - データセンター - ラックサーバノード ノードは、サーバ内のデータ記憶層として記述し、サーバは、実際の物理マシンでした。カッサンドラソフトウェアを含む。

私が理解できたことから、vnodeはノードとは異なる/場合によってはノードよりも効率的だと思われます。

しかし、私はこの階層に配置するのに問題があります。

vnodeは、上記の階層内の異なる種類のノードですか。 または は、vnodeの概念が導入された後、上の階層のserverという要素がノードと呼ばれ、上の階層のnodeという要素が現在vnodeと呼ばれています。

答えて

3

物理ノードの後に​​記述した階層の次のステップとして、vノードを確認できます。

Vノードは、クラスタのサイズを変更してデータの配布をはるかに柔軟にするときに、トークンに基づいてデータを再配布するのに役立ちます。 https://www.datastax.com/dev/blog/virtual-nodes-in-cassandra-1-2

EDIT:

datastaxサイトから良い説明がありますカサンドラの古いバージョンでは、トークンは各サーバは1つのトークン(範囲)を持っていたし、それが複製に基づいて物理マシン間で複製されたような方法で分割されました因子。 vnodesアーキテクチャ(riakなどでも使用されています)は "ノード"層の仮想化を行い、リングを多数のトークン範囲(vnode)に分割し、各物理ノード(cassandraサービス)には多数のvnodeが実行されます。提供されたリンクを確認してください。非常に良い説明があります。

+0

物理ノードとはどういう意味ですか?私は、ノード(実際の物理マシン)内のデータ記憶層であると理解しました。 –

+0

cassandraインスタンス – Horia

+0

これまで、各サーバーにはノードが1つしかないということですか?それが本当であれば、それを別々に入会する必要はありませんでした。また、リンクの理解に問題があります。リングの部分(A、B、C)は何ですか?それらのトークンはありますか?はいの場合、ノードはどのように複数のトークンを持つことができますか?そうでない場合は、許可されたハッシュ値の範囲のセクションになります。これは、ノードとvnodeの唯一の違いは、vnodeが 'ハッシュ値の範囲'の複数のチャンクを持つことができるのに対し、ノードはその範囲のチャンクを1つしか持たないということです。 –

1

カッサンドラ1.2以前は、各ノードにトークンが割り当てられていました。そこで、ノードの追加/置換は、cassandra.yamlのinitial_tokenプロパティの手動計算と、クラスタ全体での重要なデータ移動を暗示していました。

カサンドラの1.2リリースでは、仮想ノードの概念が導入されました。また、簡略化のためにvnodesと呼ばれる もあります。単一のトークンを ノードに割り当てる代わりに、トークン範囲を複数の小さな範囲に分割します。各 物理ノードに複数のトークンが割り当てられます。デフォルトでは、各ノード には256個のトークンが割り当てられます。つまり、256個の 仮想ノードが含まれています。仮想ノードは2.0からデフォルトで有効になっています。

カサンドラより、決定的なガイド、Jeff Carpenter & Eben Hewittあなたはcassandra.yamlファイルでnum_tokensプロパティを調整することにより、機械の能力に応じて、各カサンドラインスタンス(ノード)上のvnodeの数を調整することができますので、

のvnodeが良いです。

vnodeのトークンの割り当ては、org.apache.cassandra.dht.tokenallocator.ReplicationAwareTokenAllocatorクラスによって計算されます。

関連する問題