couchdb-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jason Smith <>
Subject Re: Why are reads from CouchDB so slow? (1.5MB/s or thereabouts)
Date Fri, 23 Mar 2012 11:56:44 GMT
CouchDB verifies that the document contents match a checksum which
does impose computation and codec overhead, yes.

Considering that CouchDB stores multiple sorted indices to the
documents in a database which is itself a filesystem file, in a safe
append-only format, how would you justify an expectation of static
Nginx performance? Surely CouchDB must open the file (right there you
have tied Nginx at best) and then seek through its metadata to fetch
the doc. Note, my disagreement with you is not fundamental, just of
degree. Surely it is fair to give CouchDB some elbow room to work, to
pay for its benefits?

Back to document comprehension, CouchDB does do that and this is a
huge opportunity for improvement. I believe Filipe has indeed proposed
something much like you describe: store the utf-8 JSON directly on the

I'm excited that this conversation can paint a more clear picture of
what we expect from CouchDB, to find a speed at which we could say,
"this is slower than Brand X, but it's worth it."

On Fri, Mar 23, 2012 at 11:41 AM, Jonathan Williamson <> wrote:
> As I'm requesting the documents in the exact format I submitted them
> (with no transformations or extra information) I'd expect something
> not far off a static file request from Nginx. As far as I can tell the
> .couch files aren't compressed (though that wouldn't cause such slow
> performance on an i5 anyway) and appear to contain the original
> documents almost "as is".
> The other side effect is that while fetching the documents the CPU
> usages rises to 100% which suggests, I guess, that CouchDB is reading,
> deserialising, serialising, and then streaming the document. But it
> doesn't seem like that should be necessary really?
> On Fri, Mar 23, 2012 at 11:16 AM, Jason Smith <> wrote:
>> Hi, Jonathan.
>> Can we start by identifying how fast you think **is** reasonable. What
>> speeds were you expecting? And on what grounds do you base that
>> expectation?
>> (For example, perhaps connecting and fetching one row from MySQL?)

Iris Couch

View raw message