Wanted to make sure this doesn't get forgotten in the planning for 1.1. Paul Davis and I independently refactored couch_query_servers. Paul's work is much more comprehensive and includes a switch to emonk:
The work I did is here
One feature not included in that branch is the ability to limit the number of OS processes. Should be simple to add if my work ends up being merged. I did the refactor because I was having problems with couch_query_servers "forgetting" about OS processes in BigCouch. One of the ets tables held by couch_query_servers would list thousands of processes (and in fact there were thousands of spawned couchjs), but another table would claim that only two were running. After digging through the code a while I became frustrated with all of the tracking of multiple ets tables and rewrote a server that used only one table. Other changes include
- ability to reuse an OS process when the client that requested it dies.
- better behavior under config changes - doesn't kill all query servers when [query_servers] or [native_query_servers] block changes