Indexer tasks: Update and Updall

The Update and Updall tasks keep view indexes and full-text indexes up-to-date.

Update

Update is loaded at server startup by default and runs continually, checking its work queue for views and folders that require updating. The indexer uses modest system resources by waiting five seconds between each database update operation that is performs.

The Update task performs three different updating tasks:

  • Updates views in the Domino® Directory.
  • Updates views in all other databases. When a request is made to update a view, the view is only updated if there are at least 20 note changes since the last update and if the view has been accessed in the last 7 days. The view update service increases the speed of the view access time when a view is opened in the Notes® client. If views are not updated often, the only effect on users or applications is a slow view open time because views are automatically updated when opened.
  • Updates full-text indexes. Full-text indexing provides the ability to search for notes that have been recently added. If a note is added after the most recent full-text indexing, that note will not be found by a full text search.

Update maintains two queues of work -- an immediate queue and a deferred queue. Other server components, such as the router and replicator, post requests to the updater when changes are made to databases. Some requests are posted as deferred and some as immediate.

Table 1. Full-text index updates by update frequency

Update frequency

Description

Daily

Performed by the nightly Updall task. If this nightly task is not run, the daily updating is not performed.

Scheduled

Performed by a Program document which runs Updall. You need to set the frequency to Scheduled and create the proper Program document. You can also use this method to update different databases at different times.

Hourly

Triggered by the chronos task and performed by the update task if the update task is running. If the update task is not running, chronos performs the update. If the chronos task is not running, the update is not performed.

Immediate

Performed by the Update task. If Update is not running, the update is not performed. All immediate requests are processed as they are received.

Deferred

Deferred requests are held for 15 minutes before they are processed. Requests to update the same database that occur in that time are ignored as duplicate requests.

When a view or folder change is recorded in the queue, Update waits approximately 15 minutes before updating all view indexes in the database so that the update can include any other database changes made during the 15-minute period. After updating view indexes in a database, it then updates all databases that have full-text search indexes set for immediate or hourly updates.

When Update encounters a corrupted view index or full-text index, it rebuilds the view index or full-text index in an attempt to correct the problem. Update deletes the view index or full-text index and rebuilds it.

To improve view-indexing performance, and if your server has adequate CPU power, you can run multiple Update tasks.

Managing the update task and its use of system resources

The indexer is able to keep up with the update rate in the server's default configuration if the server has a low update rate, that is, if few changes are made to databases on the server. If a server has a high update rate due to heavy application database use, a large number of mail users, or a large volume of mail, the default resource usage configuration can cause the updater queues to become large. If you determine that the update queues are too large, determine a methodology for performing updates on that server. Long queues typically indicate that views and full-text indexes are not up-to-date.

Here are some sample scenarios and practices that you may want to use, and the steps used to implement them.

  • Scenario one -- The queues are usually short, unless a full-text index starts for a large update volume database. When this occurs, the view updating requests wait for the full-text index. This causes the queues to increase until the full-text indexing is complete. To use slightly more system resources to keep the queues short, perform view updates and full-text index updates in separate threads. To do so, enter the variable UPDATE_FULLTEXT_THREAD=1 in your server's NOTES.INI file.
  • Scenario two -- The queues grow slowly over time and become too long because the Updater task is not getting sufficient system resources to keep the queues short. To use additional resources to keep the queues short, set a delay between each Update operation. To set the delay, enter these variables, UPDATE_IDLE_TIME (and FTUPDATE_IDLE_TIME if two threads are used) in the server's NOTES.INI file. By default, the delay is 5 seconds. To allow the Update task to use additional system resources, set the delay to less than 5 seconds. Finer precision might be required on a large server. In that case, you can set the delay in milliseconds (Domino 7 and later only) by adding these variables, UPDATE_IDLE_TIME_MS (and FTUPDATE_IDLE_TIME_MS if two threads are used), to the server's NOTES.INI file.
  • Scenario -- Servers that have high update rates often require too many system resources to keep the queues small. In this case, you can decide not to perform view updates at all, and just allow view opens to perform the updates automatically. Disable the view updates by adding the variable UPDATE_DISABLE_VIEWS=1 to the server's NOTES.INI file. Another option is to limit the number of immediate updates for full-text databases. You change the update frequency for databases to hourly, daily, or to a specific schedule. You can also delete extraneous full-text indexes.

    To allow frequent full-text indexing on only a small number of databases, and to prevent other databases from being full-text indexed, disable full-text indexing in the Updater and then add Program documents to schedule Updall to run, for example, every half hour (30 minutes). To disable full-text indexing in the Updater, enter the variable UPDATE_DISABLE_FULLTEXT=1 in the server's NOTES.INI file.

    You can prevent performing any updates at all, and just allow view opens to perform the view updates automatically. To prevent updates, edit the NOTES.INI variable by removing the update string.

    If a system has adequate system resources to perform updates, you can run multiple Update tasks. To do so, edit the variable ServerTasks in the NOTES.INI file and add a second Update task.

    You can adjust the controls that determine whether a modified view is actually updated or not. The database and view must still be opened, but if these thresholds are not reached, the view is not updated.

For more information, see UPDATE_ACCESS_FREQUENCY and UPDATE_NOTE_MINIMUM as well as other NOTES.INI settings.

Updall

Updall is similar to Update, but it doesn't run continually or work from a queue; instead you run Updall as needed. You can specify options when you run Updall, but without them Updall updates any view indexes or full-text search indexes on the server that need updating. To save disk space, Updall also purges deletion stubs from databases and discards view indexes for views that have been unused for 45 days, unless the database designer has specified different criteria for discarding view indexes. Use the NOTES.INI setting Default_Index_Lifetime_Days to change when Updall discards unused view indexes.

Like Update, Updall rebuilds all corrupted view indexes and full-text search indexes that it encounters.

By default Updall is included in the NOTES.INI setting ServerTasksAt2, so it runs daily at 2 AM. Running Updall daily helps save disk space by purging deletion stubs and discarding unused view indexes. It also ensures that all full-text search indexes that are set for daily updates are updated.

Note: When views are being rebuilt -- either through the Designer or Updall tasks -- all new server sessions that are attempted once the rebuild process has started are locked out. Therefore, it is recommended that changes to master templates, as well as complete view rebuilds, be scheduled for late at night, when users are far less likely to require access to the server.

The following table compares the characteristics of Update and Updall. For Updall, the table describes default characteristics. You can also modify some of these characteristics with Updall options.

Table 2. Comparison of Update and Updall

Characteristic

Update

Updall

When it runs

Continually after server startup

2 AM and when you run it

Runs on all databases?

No. Runs only on databases that have changed.

Yes

Refreshes views indexes?

Yes

Yes

Updates full-text indexes?

Yes. Updates full-text indexes set for immediate and hourly updates.

Yes. Updates all full-text indexes.

Detects and attempts to rebuild corrupted view indexes?

Yes

Yes

Detects and attempts to rebuild corrupted full-text indexes?

Yes

Yes

Purges deletion stubs?

No

Yes

Discards unused view indexes?

Yes (after a view is unused for 45 days or according to a view discard option specified by a designer)

Yes (after a view is unused for 45 days or according to a view discard option specified by a designer)

Ignores "Refresh index" view property?

Yes

Yes

Can customize with options?

No

Yes