2016-04-06 20 views
0

シード・ノードは、ノードがピアのリストを発見して維持することを可能にするゴシップ・プロトコルの「最初の接触点」の役割を果たすと理解しています。Cassandraシードノードの設定に関する推奨事項はありますか?

文書には、以下のことが推奨されています。

  • A)シードを1つずつ開始してから、クラスタ内の残りのノードを開始します。
  • B)各ノードに同じシードを定義します。

なぜわからないのですか。以下は私の最高の推測です。

  • A)すべてのノードが同時に起動した場合、そのうちの1つが正しい情報を持たないシードに接続している可能性があります。これは、ピアのコンバージェンスのリストを防止/遅延させる可能性があります。

  • B)これは、シードが他のノードよりも最新の情報を持っているためです。したがって、すべてのノードが同じシードを使用する場合、ピアのリストはより速く収束します。

私の推測は正しいですか?それ以外の理由はありますか?シードが各ノードで異なって構成されているか、ノードが正しい順序で開始されていないため、ピアのリストが収束できない場合がありますか?

答えて

1

シードノードは、ノードが最初にクラスタに参加する場合にのみ関連することを指摘することが重要です。容量を管理するために新しいノードを追加するとき。ノードは、現在のノードリストとトポロジを取得するために、シードノードと最初のコンタクトポイントとして接触します。その後、ノードがダウンしてオンラインに戻るときにも、ゴシップを通じてリストが維持されるため、ノードがクラスタに参加すると、シードはもはや関係しません。

私にとって、これらの推奨事項は、新しいクラスタのクリーンスタートを確実にすることです。

A)明白な理由から、シードは、シード以外のノードの前で開始する必要があります。一度に1つずつシードノードを起動すると、最初のノードの後に​​開始するノードは、起動した既存のノードに接続してクラスタ情報を取得できるようになります。そうでなければ、クラスタ内の最初のノードであると考えて、初期設定を行うのに時間を費やします。ノードは最終的に希望のクラスタを形成するためにに収束する必要がありますが、時間がかかることがあります。

B)各ノードに異なるシードがある場合は、誤ってクラスタの作成に成功するためのノード起動順序を設定することがあります。例えばCとDに種AとBがあるがEに種C、Dがある場合は、AまたはBの後にCまたはDを開始するように設定し、その後にEを開始する必要がありますノード。 このルールでは、次の設定を行うことができます。シード(任意の順序)を開始し、非シード(任意の順序)を開始します。

関連する問題