Hi everyone,I'm really excited about CouchDB and I've started playing with it. I get all of it, except for reduce, and especially re-reduce.
My first question is: how does CouchDB maintain all the separate output for a given key from the map function? I mean: given a simple reduce that just sums results, how does couch maintain separate results for each possible key/key range that can be given as input to that view? My second question: when and why does rereduce get called? Is this simply to allow the server to chunk the processing, or is there semantic meaning to it? I had assumed the former -- it's just a way of limiting the size of the input to the reduce function -- but then this really confused me: if I log each time my reduce function gets called, I see that the last time it's called, it's with rereduce=false. How is this possible? Don't all the results have to be funneled through rereduce to produce a single result value? Any help here would be much appreciated. If there's a resource on the web I should look at, please send it my way. Thanks! A
