couchdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Bob Dionne (JIRA)" <>
Subject [jira] [Commented] (COUCHDB-1288) More efficient builtin filters _doc_ids and _design
Date Mon, 19 Sep 2011 11:50:09 GMT


Bob Dionne commented on COUCHDB-1288:


  I started reviewing this and it looks good so far. There's an edge case we ran into the
other day that @davisp and @kocolosk ran down. When you have `feed=continuous` and a hearbeat
and a filter function that fail enough, the heartbeat timeout never triggers and no changes
are sent. It's easy to reproduce, you can see how it's handled in fabric[1]. I can probably
add it to this patch or open a second ticket if you prefer.

   Also, as an aside the `couch_changes:get_changes_timeout` is slightly awkward in the way
heartbeat is handled. It appears to allow `heartbeat=true` and in that case defaults to the
timeout in the config. That certainly does not agree with the documented semantics.  




> More efficient builtin filters _doc_ids and _design
> ---------------------------------------------------
>                 Key: COUCHDB-1288
>                 URL:
>             Project: CouchDB
>          Issue Type: Improvement
>            Reporter: Filipe Manana
>         Attachments: couchdb_1288_2.patch, couchdb_1288_3.patch
> We have the _doc_ids and _design _changes filter as of CouchDB 1.1.0.
> While they meet the expectations of applications/users, they're far from efficient for
large databases.
> Basically the implementation folds the entire seq btree and then filters values by the
document's ID, causing too much IO and busting caches. This makes replication by doc IDs not
so efficient as it could be.
> The proposed patch avoids this by doing direct lookups in the ID btree, for _doc_ids,
and ranged fold for _design.
> If there are no objections, I would apply to branch 1.2.x besides 

This message is automatically generated by JIRA.
For more information on JIRA, see:


View raw message