couchdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Paul Davis <>
Subject Re: couch_query_server refactoring
Date Mon, 09 Jul 2012 13:59:43 GMT

Lately I've been contemplating removing a lot of the Erlang mechanics
for this by rewriting couchjs as a single process/multi threaded
application. I've seen a lot of issues related to our process handling
and I also think we can probably speed things up considerably if we
change how this works. Ie, if we move to an asynchronous message
passing interface instead of the serialized stdio interface we should
be able to get some nice speedups in throughput while also removing a
lot of the resource usage.

As part of that we should also do what you suggest and look into
refactoring the top layer to make this stuff a lot cleaner where we
call it in places like the rewriter and what not.

I'm also not sure what you mean about the couchapp module. Right now
if I had to guess I could see a couple Erlang apps: one that
encompasses couchjs for JS code, one for Erlang code (for the
view/list/show etc) etc etc. I could also see having the
rewriter/list/show stuff in its own app as well but its early and I'm
not quite awake yet.

On Mon, Jul 9, 2012 at 8:10 AM, Benoit Chesneau <> wrote:
> I'm working on the couch_query_server refactoring:
>     - extract it from the couch app
>     - introduce generic way to add query servers written in Erlang or
>       calling OS processes like couchjs (so rather than distinct os
> processes from native only call an erlang module with some arguments)
>    - split the couchapp engine in its own module.
> I'm actually wondering why you have one proc / ddoc? Any reason for
> that? Apart for the rewriter?
> - benoît

View raw message