仮想ノード

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

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

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

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

仮想ノードを使用してクラスター全体にデータが分散される方法

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

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

図: 仮想アーキテクチャーと単一トークン・アーキテクチャー

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

図の下半分は、vnodeを持つリングを示します。クラスター内では、vnodeがランダムに選択され、連続していません。行の配置は、各ノードが担当する多数の小さいパーティション範囲に納まるパーティション・キーのハッシュによって決まります。