分散クエリーのシャード・ルーティング

DSE Searchノードを使用する場合、分散クエリーのシャード選択アルゴリズムでは、一連の基準を使用して処理能力が最も優れたノードにサブクエリーをルーティングします。

DSE Searchノードを使用する場合、分散クエリーのシャード選択アルゴリズムでは、一連の基準を使用して処理能力が最も優れたノードにサブクエリーをルーティングします。最も優れたノードは、一連のノード比較を行うことで特定されます。以下の基準を使用しながら、次の順序で選択が行われます。
  1. ノードはアクティブですか。アクティブなノードを優先します。
  2. 要求したコアはインデックスを作成していますか、それともインデックスの作成に失敗しましたか。ノードがいずれかの状態にもない場合は、最適なノードを選択します。
  3. ノードの健全性ランクは、ノードの健全性を説明する0〜1の範囲の指数関数的に増加する数値で指定されます。以前の条件が同じだとすると、より高いスコアのノードが最初に選択されます。このノードの健全性ランク値は、ShardRouterではJMXメトリックとして公開されます。
    ノードは稼働時間や削除されたミューテーションにおいてはどのように比べられますか。ノードの健全性ランクは、以下の数式から計算されます。
    node health = uptime / (1 + drop_rate)
    ここで、
    • drop_rate = 構成可能な長さのスライディング・ウィンドウでの1分あたりの削除されたミューテーション・レート。履歴の時間枠を構成するには、dse.yamldropped_mutation_window_minutesを設定します。

      削除されたミューテーション・レートが高い場合、ノードの負荷が過大です(Cassandraの挿入や更新など)。

    • uptime = 少し前のダウンタイムよりも最近のダウンタイムにより高い重みを付けた0〜1の範囲のスコア。
  4. ノードは、クエリーを発行しているノードに近いですか。ノードの選択には、Cassandraエンドポイント・スニッチの接近度を使用します。より近いノードを優先します。
これらの基準を使用した後、ノードはランダムに選択されます。
dse.yamlファイルの場所は、インストールのタイプによって異なります。
Installer-Services /etc/dse/dse.yaml
パッケージ・インストール /etc/dse/dse.yaml
Installer-No Services install_location/resources/dse/conf/dse.yaml
tarボール・インストール install_location/resources/dse/conf/dse.yaml