couchdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Filipe Manana (Commented) (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (COUCHDB-1289) heartbeats skipped when continuous changes feed filter function produces no results
Date Sun, 27 Nov 2011 21:13:40 GMT

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

Filipe Manana commented on COUCHDB-1289:
----------------------------------------

Bob, looks good.

I was testing this against a very large database (http://fdmanana.iriscouch.com/many_docs)
by querying _changes without an heartbeat parameter and with a filter that returned false
for the first half of the changes of the db.
It turns out that about 1 minute after the feed terminated without folding the entire seq
tree (last_seq in the response was not the current db's seq number).

So what happens is that when no heartbeat is given, a default TimeoutFun which returns {stop,
Acc} (always) is used:

https://github.com/fdmanana/couchdb/blob/c574d29bb92f2b61688b52e2e03548b05cc4a163/src/couchdb/couch_changes.erl#L239

So we have 2 distinct concepts in the changes feed: heartbeat and timeout.
I think renaming "maybe_timeout" to "maybe_heartbeat" makes it more clear, and call the function
only if no heartbeat was specified. I made quick code change to test this:

https://github.com/fdmanana/couchdb/commit/c574d29bb92f2b61688b52e2e03548b05cc4a163

Makes sense?

thanks :)
                
> heartbeats skipped when continuous changes feed filter function produces no results
> -----------------------------------------------------------------------------------
>
>                 Key: COUCHDB-1289
>                 URL: https://issues.apache.org/jira/browse/COUCHDB-1289
>             Project: CouchDB
>          Issue Type: Bug
>          Components: Database Core
>            Reporter: Bob Dionne
>            Assignee: Bob Dionne
>            Priority: Minor
>         Attachments: 0001-Ensure-heartbeats-are-not-skipped.patch, 0002-Failing-etap-for-heartbeats-skipped.patch
>
>
> if the changes feed has a filter function that produces no results, db_updated messages
will still be sent and the heartbeat timeout will never be reached.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message