仮想ノード

仮想ノード(vnode)は、単一トークン・アーキテクチャーを使用して容易に達成できるものよりも、よりきめ細かくノード全体にデータを分散させます。

仮想ノード(vnode)は、単一トークン・アーキテクチャーを使用して容易に達成できるものよりも、よりきめ細かくノード全体にデータを分散させます。仮想ノードにより、DataStax Enterpriseでの多くのタスクが簡素化されます。

  • トークンは自動的に計算され、各ノードに割り当てられます。
  • ノードの追加または除去の際に、クラスターは自動的にバランス調整されます。クラスターにノードが参加すると、そのノードはクラスターの他のノードからデータを均等に引き受けます。あるノードに障害が発生すると、負荷はクラスターの他のノードに均等に分散されます。
  • クラスターの他のノードすべてがかかわるため、デッド・ノードはより速く再構築できます。
  • クラスター内の各マシンに割り当てられるvnodeの比率を割り当てることができます。そのため、クラスターの構築に大小のコンピューターを使用できます。

既存の単一トークン・アーキテクチャーのクラスターをvnodeに変換するには、「既存のプロダクション・クラスターでの仮想ノードの有効化」を参照してください。

vnodeを使用したデータの分散

仮想ノード(vnode)では、コンシステント・ハッシュ法を使用してデータを分散させますが、新しいトークンの生成と割り当ては必要ありません。

単一トークン・アーキテクチャー・クラスターでは、クラスターの各ノードに対して単一トークンを計算して割り当てる必要がありました。各トークンによって、クラスター(またはリング)における各ノードの位置と、データのハッシュ値に応じてデータ範囲が決まります。vnodeにより、各ノードは、クラスター全体にわたって分散される多数の小さなパーティション範囲を持つことができるようになります。vnodeは、コンシステント・ハッシュ法も使用してデータを分散しますが、トークンの生成および割り当ては必要ありません。

1. 仮想アーキテクチャーと単一トークン・アーキテクチャー

図の上半分は、vnodeなしのクラスターを示します。単一トークン・アーキテクチャー・パラダイムでは、各ノードに、リング内での位置を表す単一トークンが割り当てられます。各ノードは、1つ手前のノードからそのノードに割り当てられている値までの範囲のトークン値にpartition keyをマップすることにより決定されるデータを格納します。各ノードには、クラスターの他のノードからの各行のコピーも含まれています。たとえば、レプリケーション係数が3の場合、範囲Eはノード5、6、1にレプリケートされます。ノードはリング空間内で正確に1つの連続したパーティション範囲を所有します。

図の下半分は、vnodeを持つリングを示します。クラスター内では、vnodeがランダムに選択され、連続していません。行の配置は、各ノードが担当する多数の小さいパーティション範囲に納まるパーティション・キーのハッシュによって決まります。
注: vnodeには大きな運用上の利点がありますが、特定のノードに割り当てられたvnodeの数がクラスター全体の操作に影響を与える可能性があることを念頭に置いておく必要があります。たとえば、vnodeの数が増えると、リペア・サイクル中に実行する必要があるリペアの数も増えるため、クラスター全体のリペア時間が増加します。さらに、vnodeトークンの範囲の数が増えるにつれて、トークン範囲にまたがるDSE Searchなどの機能のパフォーマンスが低下する可能性があります。