You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@couchdb.apache.org by "ASF subversion and git services (JIRA)" <ji...@apache.org> on 2017/03/19 22:43:41 UTC

[jira] [Commented] (COUCHDB-1893) Allow replication filters to meaningfully apply to deleted documents

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

ASF subversion and git services commented on COUCHDB-1893:
----------------------------------------------------------

Commit 67139cc96d4bffdd10d3e2cab02a86e569b220a2 in couchdb-documentation's branch refs/heads/master from [~wohali]
[ https://git-wip-us.apache.org/repos/asf?p=couchdb-documentation.git;h=67139cc ]

Document deletion approach when using filtered replication

Addresses PR #92 and COUCHDB-1893.


> Allow replication filters to meaningfully apply to deleted documents
> --------------------------------------------------------------------
>
>                 Key: COUCHDB-1893
>                 URL: https://issues.apache.org/jira/browse/COUCHDB-1893
>             Project: CouchDB
>          Issue Type: Improvement
>          Components: JavaScript View Server
>            Reporter: Stéphane Alnet
>
> A document that is deleted using the DELETE command will be presented to a replication filter as an empty record with only a `_deleted:true` field. A replication filter can then only use the document ID to decide whether or not to propagate the deletion; in most cases this is not sufficient, and one may have to pass along deletion documents for IDs that would not have been replicated by the filter.
> This might lead to document IDs being leaked to the target database, which might be undesirable; more importantly if the goal of filtering was to build a smaller subset of the source database (for example to replicate a very large database to a device that has smaller storage space), those deletion documents might overfill the database (they never get compacted).
> I had somewhat documented this issue on the Wiki (http://wiki.apache.org/couchdb/Replication#Filtered_Replication) a while back but never got to add it to JIRA.
> Dave Cottlehuber on the PouchDB list suggested to use PUT with a `_deleted:true` field to work around the problem (the PUT body can then contain data sufficient to enable the filter to work). However we're still stuck in case DELETE was used instead.
> My suggestion is to expand the replication filter API to add an optional third argument
>     filter(doc,req,old_doc)
> where old_doc if present references the version of the document that will get deleted. It is then up to the filter to use the _deleted flag in `doc` and the values in `old_doc`.
> (It might be useful/meaningful/easier to add old_doc in all cases; at this point I'm only suggesting to add it in the case doc contains a _deleted field.)



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)