Dgraphへのキャッシュ・ウォーミング・リクエストの発行

実行中のデータ・ドメインで、Dgraphプロセスのキャッシュをウォームアップするリクエストを発行できます。

キャッシュ・ウォーミング・リクエストを発行するには、管理WebサービスのwarmCache操作またはこのEndeca Serverコマンドを使用します。

endeca-cmd warm-cache-dd <name> --time-limit-sec <sec>
この操作によりEndeca Serverのパフォーマンスが向上し、たとえばデータ・レコードをロードするための更新後の実行に役立ちます。

エンドユーザー問合せのキャッシュは、Dgraphがその計算を再利用できるようにしてユーザーが認識可能な遅延を軽減するのに役立つため、Dgraphプロセスの問合せパフォーマンスで重要な役割を果たします。ただし、索引の更新があるたびに、キャッシュ・エントリの大部分は索引バージョンに依存するため期限切れになります。Endeca Serverは、更新後にDgraphキャッシュをウォームするためのキャッシュ・ウォーミング操作を提供します。この操作により、カスタム・ウォームアップ・スクリプトの作成が不要になります。

キャッシュ・ウォーミング・リクエストは自動的に実行されないため、明示的に発行する必要があります。この操作のパラメータは、キャッシュ・ウォーミング・ジョブが実行を許可される時間制限のみです。キャッシュ・ウォーミング操作は、典型的な問合せのリストを生成するようにDgraphキャッシュに要求し、その問合せをEndeca Serverに返します。このようにDgraphキャッシュがウォームされますが、指定された時間を超えて行われることはありません。キャッシュ・ウォーミング操作が正常に呼び出されると、空のレスポンスがただちに返され、キャッシュ・ウォーミング・ジョブがバックグラウンドで開始されます。時間制限に達すると、キャッシュ・ウォーミング・ジョブは停止します。この時間にEndeca Serverに他のリクエストを発行すると、キャッシュ・ウォーミング・ジョブより優先されます。データ・ドメインをホストするEndeca Serverクラスタでキャッシュ・ウォーミング操作を発行すると、操作はこのデータ・ドメインにサービスを提供するすべてのDgraphノードで実行されます。

1度に最大2つの後続のキャッシュ・ウォーミング・リクエストを発行できます。この場合、2番目のキャッシュ・ウォーミング・リクエストは最新の索引バージョンに対してすでに発行されたキャッシュ・エントリを無視するため、より少ない問合せを再生します。Endeca Serverは、最初のキャッシュ・ウォーミング・リクエストを受信するとタイマーを開始します。

キャッシュ・ウォーミング操作では、再生する典型的な問合せのセットを選択するために現在のDgraphプロセスの使用パターンが考慮されます。更新後にレコード・スキーマが変更された場合など、既存のキャッシュには、索引が変更された後に実行されない問合せが含まれる可能性があることに注意してください。キャッシュ・ウォーミング操作はこのような問合せ(再生用に選択された場合)からのエラーを無視し、リスト内の他の問合せの実行に進みます。キャッシュ・ウォーミング操作で再生される実際の問合せは、リクエスト・ログには表示されません。

Dgraphキャッシュをウォームアップするリクエストを発行するには、次の手順を実行します。

  1. コマンドライン・ウィンドウを使用して(たとえば、Windowsのコマンド・プロンプトを開いて)、endeca-cmdディレクトリに移動するか、または管理Webサービスにアクセスします。
  2. 次の例のような、Dgraphキャッシュをウォームするコマンドを発行します。
    endeca-cmd warm-cache-dd MyDD --time-limit-sec 2400
    ここで、
    • MyDDは、作成するデータ・ドメインの名前です。
    • --time-limit-sec <sec>は、オプションの時間制限(秒)です。デフォルトの時間制限は1800秒(30分)です。時間制限を指定しない場合、キャッシュ・ウォーミング操作はデフォルトを使用します。
    注意: データ・ドメインの名前には空白を含めることができます(たとえば、2つの単語で構成される場合など)。この場合、名前を二重引用符で囲む必要があります。したがって、他のEndeca Serverコマンドで使用する場合も名前を二重引用符で囲む必要があります。

    データ・ドメインが存在する場合、Endeca ServerはDgraphウォーミング・ジョブをバックグラウンドで開始し、問合せのリストを指定された時間実行します。時間制限に達すると、キャッシュ・ウォーミング・ジョブは停止します。この時間にEndeca Serverにリクエストを発行すると、そのリクエストが優先され、キャッシュ・ウォーミング問合せが処理される前に処理されます。

    または、管理Webサービスで次の例のようなリクエストを発行することもできます。
    <ns1:warmCache xmlns:ns1="http://www.endeca.com/endeca-server/manage/2/0">
        <ns1:name>MyDD</ns1:name>
        <ns1:timeLimitSec>2400</ns1:timeLimitSec>
    </ns1:warmCache>

    この例では、データ・ドメインMyDDのDgraphキャッシュをウォームする操作を発行し、40分間実行します。正常な操作では空のレスポンスが返され、Endeca ServerはDgraphウォーミング・スクリプトをバックグラウンドで起動します。