Details
-
Improvement
-
Status: Closed
-
Critical
-
Resolution: Fixed
-
6.0.0
Description
Indexer's handling of dcp rollback can be improved:
1. If DCP instructs to rollback to 0, indexer ignores the disk snapshots and blindly rollbacks to 0. There may be cases where trying the stream request with disk snapshots may succeed (e.g. only vbuuid has changed). It is better to always exhaust trying dcp stream requests with all the disk snapshots before rolling back to 0.
See http://review.couchbase.org/#/c/74784/ for reference.
QE verification steps:
1. Create a bucket with 2 replicas.
2. Load data and achieve 20% resident ratio in the bucket.
3. Create few indexes. Reduce disk snapshot interval to 1 min.
curl -X POST -u Administrator:asdasd http://localhost:9102/settings --data '{"indexer.settings.persisted_snapshot.moi.interval":60000}'
5. Do more mutations for a few minutes to create a couple of disk snapshots.
6. While there is incoming data load in memcached, kill memcached on one node and failover the node in quick succession.
7. Failover shouldn't cause indexes to rollback to 0 and then rebuild again.
Also, it would be good to run all rollback related tests to make sure there is no regression.