Hi Jan, Jan Lehnardt schrieb: > On 6 Apr 2010, at 10:23, Julian Moritz wrote: > >> Hi, >> >> first of all: to make the keys of a view unique via reduce, i do it as >> it's desribed in the "definitive guide to couchdb". > > try using "_sum" as your reduce function, it'll use an Erlang version that > will be faster than the JS version. "_sum" expects the emit() value to be > an integer. Just emit(doc.whatever, 1). > my reduce-function does a `return True` atm. Would it really be a speed-up? I just did what you are writing on p 185 in "the definitive guide". regards Julian > Cheers > Jan > -- > >> J Chris Anderson schrieb: >>> On Apr 5, 2010, at 12:19 PM, Julian Moritz wrote: >>> >>>> But I need it for making my list unique. This is an important feature >>>> for my application. >>> This is probably explains the slowness. When you do a group=true query, CouchDB has to run the reduce function once for each unique key (serializing all the rows in the key to the JS process, and parsing the results.) >>> >>> I haven't tested this, but you might get better response throughput by dropping the reduce function and using a _list which only sends one row of output each time the key changes. This will avoid some additional Erlang processing of the result. >>> >>> Some documentation for _list is here: >>> >>> http://books.couchdb.org/relax/design-documents/lists >> Thank you, I will have a look on it. >> >> Regards >> Julian >> >>>> Thanks, I'll think about how to set up a couchdb cluster and do more >>>> testing. >>>> >>>> Regards >>>> Julian >>>> >>>>> Chris >>>>> >>>>> >>>>>> Regards >>>>>> Julian >>>>>> >>>>>>> I've developed a (in my eyes) simple view. I have a wordlist which does >>>>>>> not contain unique words. I want to store it in a view, with every word >>>>>>> occurring once and ordered by random. Therefore I have a simple view >>>>>>> function: >>>>>>> >>>>>>> function(doc){ >>>>>>> emit([hash(doc.word), doc.word], null); >>>>>>> } >>>>>>> >>>>>>> and a simple reduce: >>>>>>> >>>>>>> function(key, values, rereduce){ >>>>>>> return true; >>>>>>> } >>>>>>> >>>>>>> calling that view with group=true it does what I want. >>>>>>> >>>>>>> When storing plenty of words to the database, one of my two cpu cores is >>>>>>> used completely by couchjs. >>>>>>> >>>>>>> Isn't the view built using two (or all) cpu cores? I thought (obviously >>>>>>> I'm wrong) that it would be calculated in parallel and using a >>>>>>> quadro-core (or more cores) would make storing faster. >>>>>>> >>>>>>> Is there a solution for that? Should I use another query-server? >>>>>>> >>>>>>> Regards >>>>>>> Julian >>>>>>> >>> > >