[ 
https://issues.apache.org/jira/browse/COUCHDB-1288?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13107757#comment-13107757
 ] 

Bob Dionne commented on COUCHDB-1288:
-------------------------------------

Filipe,

  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.  

Cheers,

Bob


[1] https://github.com/cloudant/fabric/commit/f9eea28e62496afcb

> More efficient builtin filters _doc_ids and _design
> ---------------------------------------------------
>
>                 Key: COUCHDB-1288
>                 URL: https://issues.apache.org/jira/browse/COUCHDB-1288
>             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: http://www.atlassian.com/software/jira

        

Reply via email to