3.9. IO Queue

    • concurrency

      Specifies the maximum number of concurrent in-flight IO requests that the queueing system will submit:

    • ratio

      The fraction of the time that a background IO request will be selected over an interactive IO request when both queues are non-empty:

    [ioq.bypass]

    • read

      Disk IO fulfilling interactive read requests.

    • write

      Disk IO required to update a database.

    • Disk IO required to update views and other secondary indexes.

    • Disk IO issued by compaction jobs.

    Without any configuration CouchDB will enqueue all classes of IO. The default.ini configuration file that ships with CouchDB activates a bypass for each of the interactive IO classes and only background IO goes into the queueing system:

    • An administrator may want to devote a larger portion of the overall IO bandwidth to compaction in order to stay ahead of the incoming write load. In this it may be necessary to disable the bypass for write (to help with database compaction) and/or view_update (to help with view index compaction) and then increase the ratio to give compaction a higher priority.
    • A server with a large number of views that do not need to be comlpetely up-to-date may benefit from removing the bypass on view_update in order to optimize the latency for regular document read and write operations, and build the views during quieter periods.