再起動したノードのクエリー・タイムアウトの解決

大きい検索インデックスを含むノードを再起動した場合にクエリー・タイムアウトを修正するための手順。

大きいインデックス(数百メガバイト程度)を含むノードを再起動すると、トークン範囲フィルターのクエリーのビルドに時間がかかるため、最初のクエリーがタイムアウトになる場合があります。

dse.yaml

dse.yamlファイルの場所は、インストールのタイプによって異なります。
パッケージ・インストール /etc/dse/dse.yaml
tarボール・インストール installation_location/resources/dse/conf/dse.yaml

手順

タイムアウトを回避するには:
  1. レプリケーション係数1で実行し、レプリカを常に使用可能にします。
  2. 最初のクエリーが応答に必要とする時間よりも長くなるように、 dse.yaml の設定(enable_health_based_routinguptime_ramp_up_period_seconds)を構成します。通常は1時間で十分です。
  3. ノードを再起動した後に、すべて一致するクエリーをいくつか発行します。たとえば、q=*:*を発行してフィルターをウォームアップします。
  4. オプション: Javaドライバーを使用している場合は、ホワイトリストに含まれている、ウォームアップするノードのみで非定型のセッションを作成します。
    多くのクエリーを発行すると、すべてのトークン範囲が使用される可能性が高くなります。

タスクの結果

稼働時間のランプアップ期間を過ぎると、分散クエリーによるノードへのヒットが開始されます。フィルターは既にウォームアップされているので、タイムアウトは発生しません。