仮想ノード
仮想ノード(vnode)は、単一トークン・アーキテクチャーを使用して容易に達成できるものよりも、よりきめ細かくノード全体にデータを分散させます。
仮想ノード(vnode)は、単一トークン・アーキテクチャーを使用して容易に達成できるものよりも、よりきめ細かくノード全体にデータを分散させます。仮想ノードにより、DataStax Enterpriseでの多くのタスクが簡素化されます。
- トークンは自動的に計算され、各ノードに割り当てられます。
- ノードの追加または除去の際に、クラスターは自動的にバランス調整されます。クラスターにノードが参加すると、そのノードはクラスターの他のノードからデータを均等に引き受けます。あるノードに障害が発生すると、負荷はクラスターの他のノードに均等に分散されます。
- クラスターの他のノードすべてがかかわるため、デッド・ノードはより速く再構築できます。
- クラスター内の各マシンに割り当てられるvnodeの比率を割り当てることができます。そのため、クラスターの構築に大小のコンピューターを使用できます。
既存の単一トークン・アーキテクチャーのクラスターをvnodeに変換するには、「既存のプロダクション・クラスターでの仮想ノードの有効化」を参照してください。
vnodeを使用したデータの分散
仮想ノード(vnode)では、コンシステント・ハッシュ法を使用してデータを分散させますが、新しいトークンの生成と割り当ては必要ありません。
単一トークン・アーキテクチャー・クラスターでは、クラスターの各ノードに対して単一トークンを計算して割り当てる必要がありました。各トークンによって、クラスター(またはリング)における各ノードの位置と、データのハッシュ値に応じてデータ範囲が決まります。vnodeにより、各ノードは、クラスター全体にわたって分散される多数の小さなパーティション範囲を持つことができるようになります。vnodeは、コンシステント・ハッシュ法も使用してデータを分散しますが、トークンの生成および割り当ては必要ありません。
図の上半分は、vnodeなしのクラスターを示します。単一トークン・アーキテクチャー・パラダイムでは、各ノードに、リング内での位置を表す単一トークンが割り当てられます。各ノードは、1つ手前のノードからそのノードに割り当てられている値までの範囲のトークン値にpartition keyをマップすることにより決定されるデータを格納します。各ノードには、クラスターの他のノードからの各行のコピーも含まれています。たとえば、レプリケーション係数が3の場合、範囲Eはノード5、6、1にレプリケートされます。ノードはリング空間内で正確に1つの連続したパーティション範囲を所有します。