Indexer タスク: Update と Updall

Update タスクと Updall タスクは、ビューの索引と全文索引を最新の状態に保つタスクです。

更新

Update は、サーバー起動時にデフォルトでロードされ、継続的に動作して、固有の作業キューに更新する必要があるビューやフォルダがないかを調べています。インデクサは、5 秒間の間隔を置いて各データベース更新操作を実行することによって、適切なシステムリソースを使用します。

Update タスクは、次の 3 つの異なる更新タスクを実行します。

  • Domino® ディレクトリ内のビューを更新する。
  • 他のすべてのデータベースのビューを更新する。ビューの更新が要求されると、最終更新から 20 回以上の記録の変更が行われ、過去 7 日間のうちにビューへのアクセスが行われている場合に限りビューが更新されます。ビューの更新サービスを使用すると、ビューが Notes® クライアントで開かれている場合はビューへのアクセス時間が速くなります。ビューの更新が頻繁に行われないと、ユーザーまたはアプリケーションへの唯一の影響として、ビューを開く時間が遅くなります。これは、開くときにビューが自動的に更新されるためです。
  • 全文索引を更新する。全文索引を使用すると、最近追加された記録を検索することができます。最後の全文索引の作成後に記録が追加された場合は、その記録を全文検索で見つけることはできません。

Update タスクは、即時キューと遅延キューという 2 つのワークキューを維持します。データベースに対して変更が行われると、ルーターやレプリケータなどその他のサーバーコンポーネントによって Updater への要求が発行されます。要求には、遅延として発行される要求と即時として発行される要求があります。

表 1. 更新の頻度別の全文索引の更新

更新の頻度

説明

毎日

夜間の Updall タスクによって実行。この夜間のタスクが実行されないと、毎日の更新は実行されません。

スケジュール

Updall を実行するプログラム文書によって実行。頻度を [スケジュール] に設定して、適切なプログラム文書を作成する必要があります。また、この方法を使用して、別の時間に異なるデータベースを更新することができます。

毎時

Chronos タスクによってトリガされ、Update タスクが実行されている場合は、Update タスクによって実行。Update タスクが実行されていない場合は、Chronos タスクが更新を実行します。Chronos タスクが実行されていない場合、更新は実行されません。

即時

Update タスクによって実行。Update が実行されていない場合、更新は実行されません。すべての即時要求は、受信時に処理されます。

遅延

遅延要求は、処理されるまでに 15 分間保留されます。その時間内に同じデータベースの更新要求が発生した場合、それらの要求は、重複する要求として無視されます。

作業キューにビューやフォルダの変更が記録されると、約 15 分待ってからデータベースのビューの索引をすべて更新します。これは、その 15 分間にデータベースが変更された場合に、その変更内容も含めて一括で更新するためです。データベースのビューの索引を更新した後、更新頻度が [毎時] か [即時] に設定されている全文索引を持つデータベースをすべて更新します。

Update では、ビューの索引や全文索引の破損を検出すると、そのビューの索引や全文索引を再構築して問題の解決を図ります。Update では、ビューの索引や全文索引は削除され、新規に構築されます。

サーバーの CPU の処理能力に余裕がある場合は、Update タスクを複数実行すると、ビュー索引の作成パフォーマンスが向上します。

Update タスクとこのタスクでのシステムリソースの使用を管理する

サーバーの更新率が低い場合、つまり、サーバーに対する変更がほとんど行われない場合、インデクサは、サーバーのデフォルト設定の更新率を維持できます。アプリケーションデータベースの頻繁な使用、多数のメールユーザー、大量のメールが原因でサーバーの更新率が高い場合は、デフォルトのリソース使用量の設定により、Updater のキューが大きくなる可能性があります。キューが大きすぎると判断した場合は、そのサーバーでの更新の実行方法を確認します。長いキューは、通常、ビューと全文索引が最新の状態にないことを示しています。

ここでは、使用可能なサンプルケースおよび方法と、それらを実装する手順を説明します。

  • ケース 1 - キューは、通常短い状態です。ただし、全文索引で大量のデータベースの更新が開始された場合を除きます。このタスクが発生すると、ビューの更新要求は全文索引待ちになります。これにより、全文索引の作成が完了するまでキューの容量が増加することになります。システムリソースの使用をわずかに増やして、キューを短い状態で維持するには、ビューの更新と全文索引の更新を別々のスレッドで実行します。これを行うには、サーバーの NOTES.INI ファイルに変数 UPDATE_FULLTEXT_THREAD=1 を入力します。
  • ケース 2 - Updater タスクが、キューを短い状態に維持するだけの十分なシステムリソースを取得していないため、キューの容量が徐々に増加し、キューが長すぎる状態になっています。追加のリソースを使用して、キューを短い状態に維持するには、各 Update 操作間に遅延を設定します。遅延を設定するには、サーバーの NOTES.INI ファイルに変数 UPDATE_IDLE_TIME (2 つのスレッドが使用されている場合は FTUPDATE_IDLE_TIME を追加) を設定します。デフォルトで遅延は 5 秒です。Update タスクで追加のシステムリソースの使用を可能にするには、遅延を 5 秒未満に設定します。大規模サーバーではより高い精度が求められる場合があります。このような場合は、サーバーの NOTES.INI ファイルに変数 UPDATE_IDLE_TIME_MS を追加することにより (2 つのスレッドが使用されている場合は FTUPDATE_IDLE_TIME_MS をさらに追加)、遅延をミリ秒単位で設定できます (Domino 7 以降のみ)。
  • ケース - 更新率の高いサーバーでは、多くの場合、必要なシステムリソースが多すぎてキューを短い状態に維持できません。このような場合は、ビューの更新をいっさい実行しないようにして、ビューが開いたときにだけ自動的に更新が実行されるようにすることができます。ビューの更新を無効にするには、サーバーの NOTES.INI ファイルに変数 UPDATE_DISABLE_VIEWS=1 を追加します。もう 1 つの方法として、全文索引データベースの即時更新の数を制限することができます。データベースの更新頻度を毎時間、毎日、特定のスケジュールに変更します。また、関係のない全文索引を削除することもできます。

    少数のデータベースに限定して頻繁な全文索引の作成を可能にして、その他のデータベースでは全文索引が作成されないようにするには、Updater で全文索引を無効にし、プログラム文書を追加して、例えば 30 分ごとに Updall を実行するようスケジュールします。Updater で全文索引を無効にするには、サーバーの NOTES.INI ファイルに変数 UPDATE_DISABLE_FULLTEXT=1 を入力します。

    更新をいっさい実行しないようにして、ビューが開いたときにだけ自動的にビューの更新が実行されるようにすることができます。更新を実行できないようにするには、NOTES.INI 変数を編集して update 文字列を削除します。

    システムに、複数の更新を実行できるだけの十分なシステムリソースがある場合は、複数の Update タスクを実行できます。これを行うには、NOTES.INI ファイルの ServerTasks 変数を編集して、2 つ目の Update タスクを追加します。

    修正したビューを実際に更新するかどうかを決定する制御を調整することができます。データベースとビューは引き続き開いたままの状態にする必要がありますが、これらの限界値に達すると、ビューは更新されません。

詳しくは、UPDATE_ACCESS_FREQUENCYUPDATE_NOTE_MINIMUM、とその他の NOTES.INI 設定を参照してください。

Updall

Updall は Update とほとんど同じですが、継続的に動作することも、キューから実行されることもありません。Updall は必要に応じて起動されるタスクです。実行時にオプションを指定できますが、指定しない場合は、サーバーにあるビューの索引と全文索引のうち更新の必要があるものをすべて更新します。ディスク容量を節約するため、データベースから削除スタブをパージします。また、データベース設計者がビューの索引の破棄について別の条件を指定した場合以外は、45 日以上使用されていないビューの索引を破棄します。Updall が、使用されていないビューの索引を破棄する条件になる日数は、NOTES.INIDefault_Index_Lifetime_Days 設定で変更できます。

Updall でビューの索引と全文索引に破損が検出された場合は、Update と同様に再構築が行われます。

デフォルトでは、Updall は NOTES.INIServerTasksAt2 の設定に含まれているため、毎日午前 2 時に実行されます。Updall を毎日実行すると、削除スタブがパージされ、使用されていないビューの索引が破棄されるため、ディスク容量を節約できます。Updall では、更新頻度が [毎日] に設定されている全文索引がすべて更新されます。

注: ビューが Designer タスクまたは Updall タスクによって再構築されているときは、再構築プロセスの開始後に試行されたすべての新規サーバーセッションがロックアウトされます。そのため、マスターテンプレートに対する変更、および完全なビューの再構築は、ユーザーがサーバーへのアクセスを要求する可能性がはるかに少ない夜間にスケジュールすることを推奨します。

次の表は Update と Updall の特徴を比較したものです。Updall に関する内容はデフォルト値です。また、以下の特徴のいくつかは Updall のオプションでも変更できます。

表 2. Update と Updall の比較

特性

更新

Updall

実行されるタイミング

サーバー起動後、継続的に実行

午前 2 時と、個別に起動したときに実行

対象となるデータベース

変更されたデータベースのみ

はい

ビューの索引の更新

はい

はい

全文索引の更新

はい。(更新頻度が [毎時] か [即時] に設定されている全文索引を更新)。

はい。(すべての全文索引を更新)。

ビューの索引に対する破損の検出と再構築

はい

はい

全文索引に対する破損の検出と再構築

はい

はい

削除スタブのパージ

いいえ

はい

使用されていないビューの索引の破棄

破棄する (45 日以上使用されていないビューの索引を破棄。ただし、設計者がビューの破棄にオプションを指定した場合は、この条件に従って破棄)。

破棄する (45 日以上使用されていないビューの索引を破棄。ただし、設計者がビューの破棄にオプションを指定した場合は、この条件に従って破棄)。

ビューのプロパティ [索引の更新] への対応

はい

はい

オプションでのカスタマイズ

いいえ

はい