You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@couchdb.apache.org by Garth Gutenberg <ga...@gmail.com> on 2016/12/02 15:35:12 UTC

Continuous Compaction

Hello again.  In https://blog.couchdb.org/2016/09/20/2-0/ it says
"Compaction can now be run at any time, even continuously".  However I
can't find any documentation on how to configure this - either recommended
configuration parameters or best practices.  Is there a document somewhere
that outlines how to enable continuous compaction and what the pros/cons
are?

Ideally I'd like to dedicate one node of a cluster to serving data, and the
other node to running maintenance (compaction).  Is this viable?  Is there
a better way to do it?  Any input would be appreciated.

Re: Continuous Compaction

Posted by Adam Kocoloski <ko...@apache.org>.
Hi Garth, I’m guessing this is not properly documented. We should fix that. There are two configuration properties that govern the IO workload management behavior; here they are with their defaults:

```
[ioq]
; number of concurrent IO requests that will be submitted to the disk subsystem
concurrency = 10

; when the concurrency slots are occupied, this is the probability of selecting a compaction IO request next
ratio = 0.01
```

So, if you just wanted to open up the throttle and let compaction run with whatever priority you could set

```
[ioq]
concurrency = 1000 ; or some other large number
```

Alternatively, if you wanted to actively prioritize compaction *ahead* of other interactive IO you could do

```
[ioq]
ratio = 0.8 ; or some other number up to 1.0
```

Note that if you really want to put a node in maintenance mode and have it ignore interactive requests you can also set the “maintenance mode” flag:

```
[couchdb]
maintenance_mode = true
```

Cheers, Adam


> On Dec 2, 2016, at 10:35 AM, Garth Gutenberg <ga...@gmail.com> wrote:
> 
> Hello again.  In https://blog.couchdb.org/2016/09/20/2-0/ it says
> "Compaction can now be run at any time, even continuously".  However I
> can't find any documentation on how to configure this - either recommended
> configuration parameters or best practices.  Is there a document somewhere
> that outlines how to enable continuous compaction and what the pros/cons
> are?
> 
> Ideally I'd like to dedicate one node of a cluster to serving data, and the
> other node to running maintenance (compaction).  Is this viable?  Is there
> a better way to do it?  Any input would be appreciated.