On Oct 23, 2008, at 18:35, kowsik wrote:

I was seeing the couchjs process getting pegged and I was looking into further.

1. The protocol uses "add_fun" command to add all the map functions to
the view server so that they are compiled and ready to go.
2. Then "map_doc" is invoked with each document to return the results
of the various emit's
3. They "reduce" and "rereduce" are invoked depending on the query.

It's #3 that I'm interested in. The "reduce" command currently passes
in the reduce function string from the design view each time it's
invoked. This means the reduce function is first eval'd and then
executed. I'm wondering if it's possible to rename "add_fun" to
"add_map_fun" and introduce a new "add_reduce_fun" and then reference
functions by index? Seems like it might speed things up quite a bit.

Have you measured the reduce function compilation to be a bottleneck?
I'd guess (see, haven't measured either:-) that erlang-term to JSON & JSON
parsing take up significantly more time.

Cheers
Jan
--

Reply via email to