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

Robert Newson commented on COUCHDB-1576:
----------------------------------------

+1 from me on the idea, though expiration-based sets my spider sense 
a-tingling. The _revs_limit feature is an explicit acknowledgment that keeping 
historical knowledge forever, while theoretically require to fulfil the promise 
of eventual consistency, is impractical.

Extending acknowledgement of that reality to long-deleted documents is a 
similar idea. The danger, of course, is that should you purge too soon, your 
set of replicas will never converge on the same state. So, for this to go 
ahead, I'd like to hear how we can mitigate that, or make it obvious to users.

One thought is not to make this a local decision, but one of agreement between 
a set of mutually replicating systems. An API endpoint that takes a list of 
url's to couchdb databases which produces a list of the union of deleted 
documents across them all, and purges them all. This might well be onerous but 
it would be safe, assuming the list was comprehensive. An expiration-based 
approach is potentially as good as this, as long as the expiration always 
exceeds the time that the systems come back into synch, but potentially falls 
short. Since there's no way to guarantee that two systems synchronize within a 
given timeframe, I'm wary of having it trigger based on the local clock.

/ramble
                
> Allow deletions to expire after set time
> ----------------------------------------
>
>                 Key: COUCHDB-1576
>                 URL: https://issues.apache.org/jira/browse/COUCHDB-1576
>             Project: CouchDB
>          Issue Type: Improvement
>          Components: Database Core
>    Affects Versions: 1.2
>            Reporter: Michel Meyers
>
> Currently, CouchDB keeps all deletions forever. On a very active database 
> this can lead to the number of deletions actually exceeding the number of 
> active documents.
> Lotus Domino solves this by having a cut-off date after which deletion stubs 
> are purged from a replica. It would be great to have a similar functionality 
> in CouchDB, e.g. have a setting that determines how long deletion stubs are 
> kept and then purges them from the local copy. Whether this setting resides 
> in the DB design, and thus replicates everywhere, or possibly an INI setting 
> for the local CouchDB instance is still to be determined.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to