Hi all, CouchDB 3.0 will feature a new, smarter auto-compaction daemon with the following key features:
- continuous re-prioritization of compaction queues based on estimated space savings - fine-grained control over compaction “channels” to independently prioritize different types of jobs (large databases, small views, etc.) - QoS capabilities: compaction I/O is executed at low priority by default, but admins can can reprioritize as needed However, there are a few gaps compared to the daemon in 2.x: 1. no ability to configure compaction to only run during specific time intervals 2. no ability to specify compaction thresholds for specific databases 3. incompatible configuration system; users who have customized their auto-compaction configuration in 2.x will need to redo their configuration in 3.0 I have those gaps ordered in what I’d consider to be the priority. I think we should try to address #1 before 3.0 as I’m sure many DBAs have grown accustomed to compacting during quiet hours and could be forgiven if they don’t trust our fancy QoS to keep things healthy on Day 1. I can see where #2 could be a nice enhancement but I’m OK to wait for user feedback on that one. #3 I’m content to solve with a migration guide in the documentation. Does that plan make sense to everyone? Adam