MB-23503: With an unpersisted snapshot, remove HT items till rollback point 28/75628/3
authorManu Dhundi <manu@couchbase.com>
Thu, 23 Mar 2017 18:52:06 +0000 (11:52 -0700)
committerManu Dhundi <manu@couchbase.com>
Thu, 23 Mar 2017 21:50:03 +0000 (21:50 +0000)
commit7e406a4ab32ef2ccadc5b75ebf01fcd1d14d1372
tree1f07b4df820b1f3950dde2134461f07113f6ddce
parentee2e2d44274929a8f487dfb6acafb9d8609db91d
MB-23503: With an unpersisted snapshot, remove HT items till rollback point

When the rollback request intends to have a rollback to a point in
an unpersisted snapshot, we must remove all unpersisted checkpoint
items from both checkpoint and hash table till the last persisted
disk snapshot.

Prior to this commit, we removed the items from the checkpoint
correctly, but only removed hash table items till the requested
rollback point, not all the unpersisted items, when
requested_rollback_seqno > persisted_seqno.

Note: We currently always rollback to a point which is persisted on
disk. Hence we must drop all checkpoint items from checkpoint and
hash table, irrespective of whether they are part of a full snapshot
or partial snapshot.

Change-Id: I1c14d0df6ae5e5459e60ecb0fc4a72ecd14231d3
Reviewed-on: http://review.couchbase.org/75628
Well-Formed: Build Bot <build@couchbase.com>
Tested-by: Build Bot <build@couchbase.com>
Reviewed-by: Dave Rigby <daver@couchbase.com>
src/ep.cc
tests/module_tests/evp_store_rollback_test.cc