| .. Licensed under the Apache License, Version 2.0 (the "License"); you may not |
| .. use this file except in compliance with the License. You may obtain a copy of |
| .. the License at |
| .. |
| .. http://www.apache.org/licenses/LICENSE-2.0 |
| .. |
| .. Unless required by applicable law or agreed to in writing, software |
| .. distributed under the License is distributed on an "AS IS" BASIS, WITHOUT |
| .. WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the |
| .. License for the specific language governing permissions and limitations under |
| .. the License. |
| |
| .. default-domain:: config |
| .. highlight:: ini |
| |
| .. _config/index_builds: |
| |
| =================== |
| Background Indexing |
| =================== |
| |
| Secondary indexes in CouchDB are not updated during document write operations. In order to |
| avoid high latencies when reading indexes following a large block of writes, CouchDB |
| automatically kicks off background jobs to keep secondary indexes "warm". The daemon |
| responsible for this process is internally known as "ken" and can be configured using the |
| following settings. |
| |
| .. config:section:: ken :: Background Index Builds |
| |
| .. config:option:: batch_channels :: Steady-state build concurrency |
| |
| This setting controls the number of background view builds that can be running in |
| parallel at any given time. The default is 20. |
| |
| .. config:option:: incremental_channels :: Additional slots for short jobs |
| |
| It is possible for all the slots in the normal build system to be occupied by |
| long-running index rebuilds (e.g. if new design documents are posted to several |
| databases simultaneously). In order to avoid already-built indexes from falling |
| behind when this occurs, CouchDB will allow for a number of short background |
| indexing jobs to run even when all slots are full. This setting controls how many |
| additional short jobs are allowed to run concurrently with the main jobs. The |
| default is 80. |
| |
| .. config:option:: max_incremental_updates :: Threshold defining a job as short |
| |
| CouchDB estimates whether an indexing job is "incremental" or not by looking at |
| the difference in sequence numbers between the current index and the main |
| database. If the difference is larger than the threshold defined here the |
| background job will only be allowed to run in the main queue. Defaults to 1000. |
| |
| .. config:section:: ken.ignore :: Auto-Indexing Blocklist |
| |
| Entries in this configuration section can be used to tell the background indexer to skip |
| over specific database shard files. The key must be the exact name of the shard with the |
| ``.couch`` suffix omitted, for example: |
| |
| .. code-block:: ini |
| |
| [ken.ignore] |
| shards/00000000-1fffffff/mydb.1567719095 = true |
| |
| .. note:: |
| In case when you'd like to skip all views from a ddoc, you may add |
| ``autoupdate: false`` to the ddoc. All views of that ddoc will then be skipped. |
| |
| More at :http:put:`/{db}/_design/{ddoc}`. |