You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@couchdb.apache.org by sh...@gmx.de on 2009/10/26 15:20:28 UTC

View Performance

Hi!

I am using CouchDB 0.10 with jcouchdb 0.10.0-2 in a Java project. In my CouchDB database are ~300.000 documents. I create a view which includes all documents of the db and 3 key fields.

I query this view and my result set has ~4400 documents. The view was already built and needed about 7 minutes. I measured the time for the same query multiple times and get the following performance (ms):

1586
864
601
242
231
319
244
253
302
338
268
246
240
275
253
274
250
...

I need to know what leads to that performance result? I think for the first query the B+-tree nodes (including root) has to be cached. 1585 ms for that operation is pretty slow! But why does the second and third query need about (600-800) ms? After the third query the time is about 250-300 ms. Does CouchDB has some optimizations? So couchdb realizes I perform the same query multiple times and after the third time it keeps the result set in the cache?

Hope you can help me! Thx a lot.

Re: View Performance

Posted by Paul Davis <pa...@gmail.com>.
Hi,

The only thing that CouchDB 'caches' is the open file handles and misc
Erlang PID's that need to be spawned to interact with a given view.
Depending on what state the server was in before your first request
that may have had a noticeable impact.

The second aspect is getting the FS caches hot in the kernel. I'm not
overly familiar with the kernel's caching algorithms but they do make
a difference in performance according to the different test number's
I've seen. Most likely this is the tail that you're seeing.

HTH,
Paul Davis

On Mon, Oct 26, 2009 at 10:20 AM,  <sh...@gmx.de> wrote:
> Hi!
>
> I am using CouchDB 0.10 with jcouchdb 0.10.0-2 in a Java project. In my CouchDB database are ~300.000 documents. I create a view which includes all documents of the db and 3 key fields.
>
> I query this view and my result set has ~4400 documents. The view was already built and needed about 7 minutes. I measured the time for the same query multiple times and get the following performance (ms):
>
> 1586
> 864
> 601
> 242
> 231
> 319
> 244
> 253
> 302
> 338
> 268
> 246
> 240
> 275
> 253
> 274
> 250
> ...
>
> I need to know what leads to that performance result? I think for the first query the B+-tree nodes (including root) has to be cached. 1585 ms for that operation is pretty slow! But why does the second and third query need about (600-800) ms? After the third query the time is about 250-300 ms. Does CouchDB has some optimizations? So couchdb realizes I perform the same query multiple times and after the third time it keeps the result set in the cache?
>
> Hope you can help me! Thx a lot.
>