分散検索クエリーのロード・バランス機能

分散検索クエリーのロード・バランス機能。

DSE Searchは、アルゴリズムを使用して、クエリー対象のシャード数を最小限に抑え、非ローカル・ノードから転送されるデータの量を削減することで、分散検索クエリーの負荷のバランスをとります。戦略は検索インデックスごと(コアごと)であり、dsetool set_core_propertyで変更できます。変更はRELOAD SEARCH INDEXで認識され、ノードを再起動する必要はありません。異なる検索インデックスは異なる値を持つことができます。

コア・プロパティ

分散検索クエリーのロード・バランス機能のコア・プロパティは次のとおりです。

shard.set.cover.finder

シャード・セット・カバー・ファインダーでは、クエリーのカバーを設定する方法を計算し、検索データを読み取るためにある1つのノードが他のノードより優先的に選ばれる方法が指定されます。

値は、以下のいずれかです。
  • STATIC
    用途 結果
    • 高速
    • ロード・バランスされたクライアントが必要
    • 8つ以上のvnode
    • shard.set.cover.finder=STATIC
    • 1つのノードに対する同じクエリーでは同じトークン範囲とエンドポイントを使用します。
    • 作成するトークン・フィルターの数を減らします。
    • シャード要求を均一に分散させるには、クエリーを送信するクライアントがクラスター全体でクエリー要求を均等に分散する必要があります。
  • DYNAMIC
    用途 結果
    • デフォルト
    • 8つ以下のvnode
    • shard.set.cover.finder=RANDOM
    • クラスター内の単一のノードに到着するクエリーに対する、クラスター全体のシャード要求の均一な分散。
    • トークン範囲の数が多いため、特にvnodeを使用して、クエリーごとに多数の一意のトークン・フィルターを作成します。

shard.shuffling.strategy

shard.set.cover.finder=DYNAMICの場合、シャード・シャッフリング・ストラテジを次のいずれかの値に変更できます。
  • HOST - シャードが、クエリーを受け取ったホストに基づいて選ばれます。
  • QUERY - シャードが、クエリー文字列に基づいて選ばれます。
  • HOST_QUERY - シャードが、ホストxクエリーに基づいて選ばれます。
  • RANDOM - ランダムなシャードの組み合わせが、各要求に従って選ばれます(デフォルト)。
  • SEED - クエリー間で同じシャードが選ばれます。

shard.set.cover.finder.inertia

shard.set.cover.finder=STATICの場合、シャード・カバー・ファインダーの慣性値を変更できます。inertiaの値をデフォルト1から増やすと、2つ以上のvnodeと20を超えるノードのあるクラスターのパフォーマンスが向上します。ほとんどのワークロードにはデフォルトが適しています。

コア・プロパティの変更

注: コア・プロパティの変更は、検索インデックスのdse-search.propertiesリソースにプロパティを設定する高度な操作です。
これらのコマンド例は、デモ・キースペースとhealth_dataテーブルのコア・プロパティを変更する方法を示しています。
  1. シャード・セット・カバー・ファインダーを変更するには:
    dsetool set_core_property demo.health_data shard.set.cover.finder=STATIC
  2. shard.set.cover.finder=DYNAMICの場合のみ、シャード・シャッフリング・ストラテジを変更できます。
    dsetool set_core_property demo.health_data shard.shuffling.strategy=query
  3. ノードの変更を認識するには、検索インデックスを再読み込みします。
    RELOAD SEARCH INDEX ON demo.health_data
  4. dse-search.propertiesリソースのプロパティの状態を表示するには:
    dsetool list_core_properties demo.health_data
    結果:
    shard.set.cover.finder=STATIC
ヒント: ログ・ファイルには、読み込まれたDSE検索プロパティが表示されます。dsetool list_core_propertiesコマンドは、dse-search.propertiesリソース内のプロパティの状態のみを表示します。