[ https://issues.apache.org/jira/browse/COUCHDB-1496?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13294242#comment-13294242 ] Maya Alipin commented on COUCHDB-1496: -------------------------------------- Hi Dave, Thanks for the reply. > CouchDB effectively tombstones deleted docs by replacing the content with {"_id": myid", "_deleted": true} Sorry I don't quite understand the above statement. I know that CouchDB marks deleted document with _deleted = true. But I don't know that CouchDB also changes the _id of the deleted document. Here is the sample document: { "_id": "fd906375bd77a7fa63b248766d012008", "_rev": "3-4265ec72422ced8030b19bd441ef6371", "type": [ "timesheets", "timesheet" ], "tasktype": "Testing", "project": { "_id": "timesheets.project:4", "_rev": "1-097a42351376d974002ed8892275eb61", "type": [ "projects", "project" ], "id": 4 }, "workdate": "2012-03-05 08:30:00", "description": "#4955 Test Comparison, Position Tool and Charts.", "charge": false, "workhour": 2, "employee": { "_id": "timesheets.employee:maya", "_rev": "1-52f74183f29b7f2c8a9fff5b919cdc03", "name": "maya", "type": [ "timesheets", "employee" ] }, "hourlyrate": 10, "chargedfee": 0 } And the filter: function(doc, req) { if (doc._id.indexOf("_design") == 0 ){ return true; } var pid = req.query.pid; if(doc.type && doc.type.length == 2) { if ((doc.type[0] == "timesheets" && doc.type[1] == "setting") || (doc.type[0] == "timesheets" && doc.type[1] == "employee") || (doc.type[0] == "timesheets" && doc.type[1] == "tasktype")){ return true; } if (doc.type[0] == "projects" && doc.type[1] == "project" && doc._id === pid){ return true; } if(doc.type[0] == "timesheets" && doc.type[1] == "timesheet" && doc.project && doc.project._id === pid){ return true; } } return false; } Is there any specific commands to include _deleted documents on filtered replication? > Incomplete Replication on Several Circumstances > ----------------------------------------------- > > Key: COUCHDB-1496 > URL: https://issues.apache.org/jira/browse/COUCHDB-1496 > Project: CouchDB > Issue Type: Bug > Affects Versions: 1.2 > Environment: iriscouch > Reporter: Maya Alipin > Priority: Minor > > I have found that on several circumstances, CouchDB's continous filtered replication doesn't do what I expect. > 1. deleted documents in source database ends up not deleted in destination database > 2. I notice on continuous replication, the replication status will remain incomplete until check-pointed sequence equals source sequence. On continuous filtered replication, an update may not pass the filter and cause the replication to become incomplete. > I found the replication remains incomplete even if there is an update that pass the filter. I need to restart the replication to get the update replicated to the destination database. > Test Scenario: > 1. Trigger a filtered continuous replication from database X to database Y on _replicator database. Replication progress is 100% > 2. Add new document(A1) on database X. > 3. Document A1 pass the replication filter, thus A1 is replicated to database Y. Replication progress is 100% > 4. Delete document A1 on database X. Replication progress become 99%, document A1 still exists on database Y. > 6. Restart the filtered continuous replication from database X to database Y by deleting document on _replicator database and create it again > 7. Replication progress stops at 99%. > 8. Add new document(A2) on database X. > 9. Document A2 pass the replication filter, thus A2 is replicated to database Y. Replication progress become 100% > 10. Delete document A2 on database X. Replication progress become 99%, document A2 still exists on database Y. -- 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