On Mon, Jun 15, 2009 at 02:28:17PM +0800, hhsuper wrote: > Hi, guys, I need some help, i want to know when we should implement the > rereduce in reduce function? Answer: always. Once you get above a handful of documents you will see re-reduces taking place. This is because reduce is done in multiple steps: doc \ doc -> reduce - doc / \ doc \ \ doc -> reduce ---rereduce --> answer doc / / doc \ / doc -> reduce - doc / Also: each btree node contains a bunch of documents, and the btree node also contains a cached reduce value for that set of docs. This makes it much cheaper for couchdb to calculate the reduce value across a range of keys; it can use already-reduced values where available, and combine them using rereduce. There's more info linked from the Wiki. Regards, Brian.