Chris Anderson asked me this earlier on the user list:
> Quick question: was this version of CouchDB built freshly against the
> latest Erlang? We've noticed that some performance changes on an
> Erlang upgrade don't appear until after Couch is rebuilt.
Given your results below I started thinking my memory wasn't serving me
right probably... usually I build from source, and I'm pretty sure I did
with couchDB, but now also remember I /tried/ installing it from darwin
ports or something similar, pre-compiled stuff, which, to my best
recollection, didn't work.
I don't know erlang that well..... could it be possible that the sources
I have for 0.8 were compiled with R12B-3, which when run under R12B-5
give good results, while if those sources are compiled with R12B-5 give
bad results?
Cheers,
Lawrence
For completeness sake:
The previous results were against Erlang R12B-5.
Here's R12B-3 which doesn't have the fsync() fix:
CouchDB 0.8.0:
Requests per second: 184.42 [#/sec] (mean)
CouchDB 0.8.1:
Requests per second: 185.74 [#/sec] (mean)
CouchDB trunk r731451 (pre-async-commit-patch):
Requests per second: 199.30 [#/sec] (mean)
Cheers
Jan
--
On 6 Jan 2009, at 16:10, Jan Lehnardt wrote:
On 6 Jan 2009, at 14:56, Lawrence Pit wrote:
Interesting indeed. I was seeing:
CouchDB/0.8.0-incubating
I assume that is different from CouchDB 0.8.1 ?
CouchDB 0.8.0:
Requests per second: 5.29 [#/sec] (mean)
Cheers
Jan
--
Cheers,
Lawrence
Interesting. I wonder that Lawrence was seeing...
On Jan 6, 2009, at 7:11 AM, Jan Lehnardt wrote:
On 6 Jan 2009, at 00:46, Geir Magnusson Jr. wrote:
It was reported that w/ the same up-to-date version of erlang,
they found a big performance difference between 0.8 and current
trunk. If that's true, then it seems to me that something
changed in the filesystem handling in the CouchDB code itself -
it could be that there are multiple flush modes, and the 0.8 code
used whatever corresponds to fsync(), and trunk uses whatever
corresponds to fnctl(F_FULLSYNC). I don't know It's a guess.
But yesterdays results are unexplained, and I hate mysteries.
$ ab -c 10 -n 1000 -p emptypost -T 'application/json'
http://127.0.0.1:5984/test_suite_db
CouchDB 0.8.1:
Requests per second: 6.56 [#/sec] (mean)
CouchDB trunk r731451 (pre-async-commit-patch):
Requests per second: 5.94 [#/sec] (mean)
Cheers
Jan
--