データ・ドメイン・プロファイルを作成して、指定したタイムアウト期間にデータ・ドメインが問合せを受け取らなかった場合、そのデータ・ドメインを自動的にアイドル状態にすることができます。データ・ドメインの自動アイドル化は、Endeca Serverデプロイでデータ・ドメインの増大を制御するのに有効で、これによりEndeca Serverクラスタのハードウェア使用率が向上します。このトピックでは、Endeca Serverがデータ・ドメインの自動アイドル化を管理する方法について説明します。
データ・ドメイン・プロファイルには、データ・ドメインのアイドリングに関する次の設定が含まれています。
- autoIdleは、タイムアウト後にDgraphプロセスを停止することにより、データ・ドメインをアイドル状態にするかどうかを示します。falseに設定すると、Endeca Serverはこのデータ・ドメインをアイドル状態にしません。trueに設定すると、このタイムアウト中にデータ・ドメインが問合せを受け取らなかった場合、idleTimeoutMinutesで指定したオプションのタイムアウト後にデータ・ドメインがアイドル状態になります。autoIdleのデフォルトはfalseです。
- idleTimeoutMinutesは、アイドリングに使用するタイムアウトを指定します(分単位)。タイムアウトは、データ・ドメインが作成されて有効になった時点からカウントされます。このパラメータはオプションです。指定しなかった場合は、デフォルト値の10分が使用されます。データ・ドメインのアイドリングのタイムアウトを変更するには、データ・ドメインを無効にして、新しいタイムアウトにより新しいデータ・ドメイン・プロファイルを作成し、新しいデータ・ドメイン・プロファイルを使用するデータ・ドメインを更新してから、データ・ドメインを有効にします。
データ・ドメインは、このデータ・ドメインをホストしているすべてのEndeca Serverノードで、Dgraphプロセスが停止された際に
アイドル状態になります。アイドル状態のデータ・ドメインは引き続きEndeca Serverに登録されたままですが、Endeca Serverはこのデータ・ドメインに対するリソース(メモリーおよび処理スレッド)の割当てを停止します。アイドル状態のデータ・ドメインは、問合せを受け取ると自動的にアクティブ化されます。つまり、Endeca Serverで動作しているフロントエンド・アプリケーション(Studioなど)のエンドユーザーがリクエストを発行すると、アイドル状態のデータ・ドメインがアクティブ化され、そのDgraphプロセスが自動的に再起動されます。次の文は、アイドル状態のデータ・ドメインをアクティブ化する(または、アクティブ化しない)操作について説明しています。
- 会話Webサービス、構成Webサービスおよびデータ収集Webサービスからの問合せにより、アイドル状態のデータ・ドメインがアクティブ化され、タイムアウト・タイマーが再起動されます。
- 管理および構成URLコマンドからの問合せでも、アイドル状態のデータ・ドメインがアクティブ化され、Dgraphプロセスが再起動されます(そして、タイマーが再起動されます)。ただし、http://<host>:<port>/endeca-server/admin/<data_domain>?op=pingは例外で、これはアイドル状態のデータ・ドメインをアクティブ化しません。
- バルク・ロード相互作用。バルク・インジェスト・インタフェースによるデータのロード・プロセスは、管理WebサービスからallocateBulkLoadPort操作を開始し、アイドル状態のデータ・ドメインをアクティブ化します。自動アイドル化が有効に設定されているデータ・ドメインで、バルク・インジェスト操作が発行されて進行中になった場合、バルク・ロードに要する時間がアイドリング・タイムアウトより長くなる可能性があります。バルク・データ・ロードの進行中にタイムアウトの時間が経過した場合、Endeca Serverはアイドリングのタイムアウトをリフレッシュしてデータ・ドメインを停止させないようにするため、バルク・ロードは正常に完了します。
- endeca-cmdコマンドはアイドル状態のデータ・ドメインをアクティブ化しませんが、endeca-cmd allocate-bulk-load-portは例外で、アイドル状態のデータ・ドメインをアクティブ化します。
注意: ここで重要なことは、「アイドル状態のデータ・ドメイン」と「自動アイドル化が有効に構成されているデータ・ドメイン」を区別することです。「アイドル状態のデータ・ドメイン」は、すでにアイドル状態になっている(プロセスは停止)データ・ドメインのことで、「自動アイドル化が有効に構成されているデータ・ドメイン」は、使用するデータ・ドメイン・プロファイルにおいてautoIdleがtrueに設定されているデータ・ドメインのことです。このようなデータ・ドメインはアクティブ化できますが、タイムアウト後に自動アイドル化するように設定されていると、タイムアウト中に問合せを受け取らなかった場合、すでにアイドル状態になっている可能性があります。
データ・ドメインを手動で無効にする機能と比較した場合、データ・ドメインで自動アイドル化が有効に構成されていると、Endeca ServerがDgraphプロセスを自動的に停止して再起動させるため、ユーザーはこれらの操作を明示的にコールする必要はありません。
次の文では、様々な状況でアイドル状態のデータ・ドメインが動作する仕組みについて説明します。
- Endeca Serverにおける長時間実行操作との相互作用。データ・ドメインで操作が長時間実行されている場合(データがロードされている、キャッシュ・ウォーミング操作が実行されている、など)、その操作が終了するまで、Endeca Serverはデータ・ドメインをアイドル状態にしません。操作の開始時にアイドリングのタイムアウトが再起動され、さらに操作が終了するために必要な回数だけ再起動されます。操作は終了したがタイムアウトの時間は経過していない場合、データ・ドメインはタイムアウトの残りの期間アクティブな状態のままです。
- データ・ドメインで自動アイドル化が有効に設定されているが、現在はアクティブな状態である場合は、データ・ドメインを無効にしてから有効にすると、アクティブな状態になります。
- データ・ドメインがアイドル状態のときにそのデータ・ドメインを無効にすると、Dgraphプロセスを再起動することによりデータ・ドメインがアクティブ化される問合せを受け取るまでの間、データ・ドメインは再度有効にしたときにアイドル状態になります。
- データ・ドメインがアイドル状態である場合、アイドリング・タイマーは停止します。データ・ドメインがアクティブ化されると、タイムアウト用のクロックが再起動されます。
- 新しいデータ・ドメイン・プロファイルを使用するデータ・ドメインを更新しても、この更新は無効にされているデータ・ドメインに対して実行されるため、アイドリングを妨げることはありません。
- アイドル状態のデータ・ドメインのクローニング、エクスポートおよびインポートは、無効にされているデータ・ドメインに対して実行されるこれらの操作と同じように動作します。
- データ・ドメインをアイドル状態にしてから、Endeca ServerをホストしているWebLogic Serverを再起動した場合、Endeca Serverの再起動後もデータ・ドメインは引き続きアイドル状態を維持します。
データ・ドメインのアイドリングに関する制限は次のとおりです。
- 単一のDgraphプロセスが実行されているデータ・ドメインでは自動アイドル化が保証されますが、クラスタにデプロイされているデータ・ドメインでは無視されます。具体的には、クラスタ内でautoIdleがtrueに設定されているデータ・ドメイン・プロファイルを使用してデータ・ドメインを作成した場合、データ・ドメインは正常に作成されますが、autoIdle設定は無視されます。同様に、1つのDgraphノードを持つデータ・ドメインに対して、autoIdleがtrueに設定されている特定のデータ・ドメイン・プロファイルを使用してから、ノードを追加することによりそのデータ・ドメインを再スケールした場合、Endeca ServerではautoIdle設定は無視されます。
- データ・ドメインを有効にして、アイドル状態のデータ・ドメインをアクティブ化する操作が成功するのは、その操作がリソースの制約をすべて満たしている場合のみです。つまり、あるデータ・ドメインがアイドル状態のときにそのデータ・ドメインに対して問合せが発行され(通常はデータ・ドメインがアクティブ化されます)、一方その間に他のデータ・ドメインがEndeca Serverで構成されて有効にされている場合は、Endeca Serverにこのデータ・ドメインをアクティブ化するために十分なリソースが備えられていない可能性があります。この場合、Endeca Serverはエラーを発行し、他のデータ・ドメインを無効にしてEndeca Serverクラスタ内の領域を手動で解放するまで、データ・ドメインはアイドル状態を維持します。または、Endeca Serverクラスタにノードを追加して容量を増加させ、それを利用するようにデータ・ドメインを更新することもできます。