分散クエリーのシャード・ルーティング
DSE Searchノードで、分散クエリーのシャード選択アルゴリズムは、一連の基準を使用して最も処理能力の高いノードにサブクエリーをルーティングします。
dse.yaml
dse.yamlファイルの場所は、インストールのタイプによって異なります。パッケージ・インストール | /etc/dse/dse.yaml |
tarボール・インストール | installation_location/resources/dse/conf/dse.yaml |
DSE Searchノードで、分散クエリーのシャード選択アルゴリズムは、一連の基準を使用して最も処理能力の高いノードにサブクエリーをルーティングします。最良のノードは一連のノード比較により決定されます。ノードは以下の基準に従って順番に選択されます。
- ノードがアクティブかどうか。
アクティブ・ノードが優先されます。
- 要求されたコアのインデックスが作成されているか、またはインデックスの作成が失敗しているか。
ノードがどちらの状態でもない場合は最良のノードが選択されます。
- ノードの健全性ランク。値は0と1の間で指数関数的に増加します。このスコアはノードの健全性を示すため、ここまでの基準が同じ場合はスコアが高いノードから選択されます。このノードの健全性ランク値は、JMXメトリクスとしてShardRouterに公開されています。 ノードの健全性ランクは、稼働時間と削除されたミューテーションを比較したものです。
ここで、node health = uptime / (1 + drop_rate)
- drop_rate:構成可能な長さのスライディング・ウィンドウにおいて、1分間にミューテーションが削除された割合。
履歴時間枠を構成するには、dse.yamlのdropped_mutation_window_minutesを設定します。
ミューテーション削除率が高い場合、ノードが過負荷であることを示しています。たとえば、データベースの挿入時や更新時などです。
- uptime:0と1の間のスコア。より直近のダウンタイムに大きい重み付けをします。
- drop_rate:構成可能な長さのスライディング・ウィンドウにおいて、1分間にミューテーションが削除された割合。
- そのノードがクエリーを発行しているノードに近いかどうか。
ノードの選択では、エンドポイント・スニッチの近接度が使用されます。より近いノードが優先されます。
シャード・ルーターを確認するには、shards.info=true
を検索クエリーに追加します。