blob: 103633c405f3bea1b59eb240387645d31d0f08f6 [file] [log] [blame]
.. 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}`.