You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@couchdb.apache.org by Talib Sharif <ts...@mymedify.com> on 2010/07/22 00:08:22 UTC

reduce_overflow_error

I am getting the following error when requesting a view. My Db has about
100000 documents. And i have about 10 views with either having no reduce
function or a reduce function with 'return sum(values)' as the return value.

I tried the exact same views on a 2000 documents DB and i don't get this
error. Am i hitting some wall in terms of size? Whats the best way to debug
this?

{"error":"reduce_overflow_error","reason":"Reduce output must shrink
more rapidly: Current output: '


Thanks,

Talib

Re: reduce_overflow_error

Posted by J Chris Anderson <jc...@gmail.com>.
On Jul 21, 2010, at 4:59 PM, Talib Sharif wrote:

> Yup, thats what i discovered.
> 
> Basically i had
> 
> var val = parseInt(doc.field1.attr1)
> emit(doc._id, val)
> 
> and doesnt necessaryily mean that it will will be 0 or something.
> 
> i had to do
> 
> var val = parseInt(doc.field1.attr1)
> if (val)
> 	emit(doc._id, val)
> 
> Thanks,
> Talib
> 

Also it is worth noting that equivalent to this reduce function:

function(ks, vs, rr) {
  return sum(vs);
}

is the plain text:

_sum

And it will be run in Erlang and be much much faster especially for group queries.

There is also _count if you would always be emitting the value 1 from your map and would like to count the # of rows. When you do this you can emit any old thing, and the value will be ignored, just the # of rows counted.

Chris


> 
> On Jul 21, 2010, at 4:37 PM, J Chris Anderson wrote:
> 
>> 
>> On Jul 21, 2010, at 3:08 PM, Talib Sharif wrote:
>> 
>>> I am getting the following error when requesting a view. My Db has about
>>> 100000 documents. And i have about 10 views with either having no reduce
>>> function or a reduce function with 'return sum(values)' as the return value.
>>> 
>>> I tried the exact same views on a 2000 documents DB and i don't get this
>>> error. Am i hitting some wall in terms of size? Whats the best way to debug
>>> this?
>>> 
>>> {"error":"reduce_overflow_error","reason":"Reduce output must shrink
>>> more rapidly: Current output: '
>>> 
>> 
>> Are the values scalar numbers before you sum them?
>> 
>> You can run log(foo) to log to the couch.log from the view function.
>> 
>> Chris
>> 
>>> 
>>> Thanks,
>>> 
>>> Talib
>> 
> 


Re: reduce_overflow_error

Posted by Talib Sharif <ts...@mymedify.com>.
Yup, thats what i discovered.

Basically i had

var val = parseInt(doc.field1.attr1)
emit(doc._id, val)

and doesnt necessaryily mean that it will will be 0 or something.

i had to do

var val = parseInt(doc.field1.attr1)
if (val)
	emit(doc._id, val)

Thanks,
Talib


On Jul 21, 2010, at 4:37 PM, J Chris Anderson wrote:

>
> On Jul 21, 2010, at 3:08 PM, Talib Sharif wrote:
>
>> I am getting the following error when requesting a view. My Db has  
>> about
>> 100000 documents. And i have about 10 views with either having no  
>> reduce
>> function or a reduce function with 'return sum(values)' as the  
>> return value.
>>
>> I tried the exact same views on a 2000 documents DB and i don't get  
>> this
>> error. Am i hitting some wall in terms of size? Whats the best way  
>> to debug
>> this?
>>
>> {"error":"reduce_overflow_error","reason":"Reduce output must shrink
>> more rapidly: Current output: '
>>
>
> Are the values scalar numbers before you sum them?
>
> You can run log(foo) to log to the couch.log from the view function.
>
> Chris
>
>>
>> Thanks,
>>
>> Talib
>


Re: reduce_overflow_error

Posted by J Chris Anderson <jc...@gmail.com>.
On Jul 21, 2010, at 3:08 PM, Talib Sharif wrote:

> I am getting the following error when requesting a view. My Db has about
> 100000 documents. And i have about 10 views with either having no reduce
> function or a reduce function with 'return sum(values)' as the return value.
> 
> I tried the exact same views on a 2000 documents DB and i don't get this
> error. Am i hitting some wall in terms of size? Whats the best way to debug
> this?
> 
> {"error":"reduce_overflow_error","reason":"Reduce output must shrink
> more rapidly: Current output: '
> 

Are the values scalar numbers before you sum them?

You can run log(foo) to log to the couch.log from the view function.

Chris

> 
> Thanks,
> 
> Talib