couchdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Benoit Chesneau <>
Subject Re: couch_query_server refactoring
Date Mon, 09 Jul 2012 14:59:00 GMT
On Mon, Jul 9, 2012 at 3:59 PM, Paul Davis <> wrote:
> Benoît,
> 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.

What would be the difference/advantage with using something like emonk?
> 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.

I'm thinking to have a new structure like:

    couch_qs -> everything really needed for indexation|m/r
    couch_ape -> everything related to the couchapps

> 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