On Tue, Dec 23, 2008 at 7:25 PM, Simon Wex <[email protected]> wrote:
>
> So this just the system reducing to enable group_level=3|2|1|0 (since
> my key is max 3 elements)?  That does explain what I'm seeing in the
> logs. Very clever.
>

Reduce is designed to allow you to retrieve the reduction value from
arbitrary key ranges. group_level queries are just a way of
calculating a set of key ranges (eg all those key which share a common
2 element prefix, etc.) You can query a reduce view with any start or
end key you'd like. Group level is just a way to ask CouchDB to make a
series of those queries for you. The cleverness is in being able to
reuse intermediate reduce values to calculate the reduction for novel
key ranges. That is, if part of a reduce has been calculated for a
range, then that partial calculation can be reused when computing the
reduction value for the completed range.

There are some figures that may clear the rereduce parts up here:
http://horicky.blogspot.com/2008/10/couchdb-implementation.html

-- 
Chris Anderson
http://jchris.mfdz.com

Reply via email to