3.14. Resharding — Apache CouchDB® 3.2 Documentation

# 3.14. Resharding

## 3.14.1. Resharding Configuration

`[resharding]`
  `max_jobs`

    Maximum number of resharding jobs per cluster node. This includes completed, failed, and running jobs. If the job appears in the _reshard/jobs HTTP API results it will be counted towards the limit. When more than `max_jobs` jobs have been created, subsequent requests will start to fail with the `max_jobs_exceeded` error:

        [reshard]
        max_jobs = 48

  `max_history`

    Each resharding job maintains a timestamped event log. This setting limits the maximum size of that log:

        [reshard]
        max_history = 20

  `max_retries`

    How many times to retry shard splitting steps if they fail. For example, if indexing or topping off fails, it will be retried up to this many times before the whole resharding job fails:

        [reshard]
        max_retries = 1

  `retry_interval_sec`

    How long to wait between subsequent retries:

        [reshard]
        retry_interval_sec = 10

  `delete_source`

    Indicates if the source shard should be deleted after resharding has finished. By default, it is `true` as that would recover the space utilized by the shard. When debugging or when extra safety is required, this can be switched to `false`:

        [reshard]
        delete_source = true

  `update_shard_map_timeout_sec`

    How many seconds to wait for the shard map update operation to complete. If there is a large number of shard db changes waiting to finish replicating, it might be beneficial to increase this timeout:

        [reshard]
        update_shard_map_timeout_sec = 60

  `source_close_timeout_sec`

    How many seconds to wait for the source shard to close. “Close” in this context means that client requests which keep the database open have all finished:

        [reshard]
        source_close_timeout_sec = 600

  `require_node_param`

    Require users to specify a `node` parameter when creating resharding jobs. This can be used as a safety check to avoid inadvertently starting too many resharding jobs by accident:

        [reshard]
        require_node_param = false

  `require_range_param`

    Require users to specify a `range` parameter when creating resharding jobs. This can be used as a safety check to avoid inadvertently starting too many resharding jobs by accident:

        [reshard]
        require_range_param = false