As a space saving measure during a merge, 'cbbackupmgr' will discard tombstones where the sequence number is larger than the purge sequence number. When paired with the existing forward merge logic, this result in backups which contain "revived" documents.
1) Spin up a single node cluster
2) Limit it to 1 vBucket (must be CC+)
3) Create 4 documents (key1, key2, key3, key4)
4) Take a backup
5) Delete 2 documents (key1, key4)
6) Mutate a single document (key5)
7) Take a backup
8) Mutate a single document (key 2)
9) Perform an unsafe purge
10) Take a backup
11) Merge all the previous backups
We should see the merge complete successfully, whilst reporting that a single tombstone was "skipped".
Using 'info' to look at the data, we'll see:
Note that we have four mutations, and only a single tombstone; key1 was "revived".
We should remove the logic which is in place to skip purged tombstones during a merge.
|For Gerrit Dashboard: MB-47653|
|158446,2||MB-47653 Remove merge tombstone purge logic||cheshire-cat||backup||Status: MERGED||+2||+1|
|158652,1||Merge branch 'cheshire-cat' into master||master||backup||Status: MERGED||+2||+1|
|158653,2||MB-47653 [BP] Remove merge tombstone purge logic||mad-hatter||backup||Status: MERGED||+2||+1|
|159422,1||Merge branch 'mad-hatter' into cheshire-cat||cheshire-cat||backup||Status: MERGED||+2||+1|
|159428,1||Merge branch 'cheshire-cat' into master||master||backup||Status: MERGED||+2||+1|