Hi,

Yes, that's what I'm referring to, the javascript reduce function.

I'm curious what you do with custom reduce that isn't covered by the built-in 
reduces?

I also think if custom reduce was disabled by default that we would be 
motivated to expand this set of built-in reduce functions.

B.

> On 13 Oct 2020, at 17:06, Jonathan Hall <fli...@flimzy.com> wrote:
> 
> To be clear, by "custom reduce functions" you mean this 
> (https://docs.couchdb.org/en/stable/ddocs/ddocs.html#reduce-and-rereduce-functions)?
> 
> So by default, only built-in reduce functions could be used 
> (https://docs.couchdb.org/en/stable/ddocs/ddocs.html#built-in-reduce-functions)?
> 
> If my understanding is correct, I guess I find it a but surprising. I've 
> always thought of map/reduce of one of the core features of CouchDB, so to 
> see half of that turned off (even if it can be re-enabled) makes me squint a 
> bit. And it is a feature I use, so I would not be in favor of deprecating it 
> entirely, without a clear proposal/documentation for an 
> alternative/work-around.
> 
> Based on the explanation below, it doesn't sound like there's a technical 
> reason to deprecate it, but rather a user-experience reason. Is this correct?
> 
> If my understanding is correct, I'm not excited about the proposal, but 
> before I dive further into my thoughts, I'd like confirmation that I actually 
> understand the proposal, and am not worried about something else ;)
> 
> Jonathan
> 
> 
> On 10/13/20 5:48 PM, Robert Samuel Newson wrote:
>> Hi All,
>> 
>> As part of CouchDB 4.0, which moves the storage tier of CouchDB into 
>> FoundationDB, we have struggled to reproduce the full map/reduce 
>> functionality. Happily this has now happened, and that work is now merged to 
>> the couchdb main branch.
>> 
>> This functionality includes the use of custom (javascript) reduce functions. 
>> It is my experience that these are very often problematic, in that much more 
>> often than not the functions do not significantly reduce the input 
>> parameters into a smaller result (indeed, sometimes the output is the same 
>> or larger than the input).
>> 
>> To that end, I'm asking if we should deprecate the feature entirely.
>> 
>> In scope for this thread is the middle ground proposal that Paul Davis has 
>> written up here;
>> 
>> https://github.com/apache/couchdb/pull/3214
>> 
>> Where custom reduces are not allowed by default but can be enabled.
>> 
>> The core _ability_ to do custom reduces will always been maintained, this is 
>> intrinsic to the design of ebtree, the structure we use on top of 
>> FoundationDB to hold and maintain intermediate reduce values.
>> 
>> My view is that we should merge #3214 and disable custom reduces by default.
>> 
>> B.
>> 

Reply via email to