kocolosk opened a new pull request #464: Document the IO Queue system
URL: https://github.com/apache/couchdb-documentation/pull/464
 
 
   ## Overview
   
   This PR is a little bit different. It is not an accurate description of the 
current configuration for IOQ (which is far less coherent), but is rather an 
attempt to write down what I think the configuration ought to look like when we 
release 3.0. I've gone back and forth several times on how much we ought to 
modify and enhance IOQ at this late juncture, and figured one way to unblock 
things was to document what a sensible future state would look like.
   
   The system I've documented here can be implemented with a conservative patch 
on top of the IOQ implementation that was present in CouchDB 2.3.1; i.e., it 
would ignore the "full fat" IOQ system later contributed by Cloudant. I expect 
that this approach will yield a higher-throughput system than "IOQ1" 
contributed by Cloudant and will be far less complex than "IOQ2". The 
documentation provides some basic recommendations regarding when it might make 
sense to change the defaults.
   
   Other bits of the "full-fat" IOQ system that are not excluded from this 
documentation:
   
   - fine-grained prioritization of reads, writes, view updates, internal 
replication and compaction. Each of these classes has a bypass switch governing 
whether IOQ cares about it at all, and there's a single configuration knob 
balancing "interactive" (read, write, and view update) vs. "background" 
(internal replication and compaction) IO
   
   - statistics collection and recording into an internal CouchDB database once 
a minute
   
   - customization of priorities on a per-database basis
   
   - deduplication of identical read IO requests that arrive concurrently. This 
dedupe operation is somewhat computationally expensive and we have sometimes 
needed to disable it in production
   
   I'd like to use this Pull Request to gain support for IO Queue functionality 
as documented here as the plan of record for 3.0.
   
   ## GitHub issue number
   
   apache/couchdb#2171
   
   ## Checklist
   
   - [x] Documentation is written and is accurate;
   - [x] `make check` passes with no errors
   - [ ] Update 
[rebar.config.script](https://github.com/apache/couchdb/blob/master/rebar.config.script)
 with the commit hash once this PR is rebased and merged
   

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


With regards,
Apache Git Services

Reply via email to