MB-16656: Stream a full (disk+mem) snapshot from DCP producer on replica vb 16/57816/7
authorManu Dhundi <manu@couchbase.com>
Mon, 21 Dec 2015 21:42:07 +0000 (13:42 -0800)
committerManu Dhundi <manu@couchbase.com>
Wed, 23 Dec 2015 07:44:09 +0000 (07:44 +0000)
commit6f869d133e4d85c7f66df884c2385d06bb64931b
treed2e2972b13f3315aa749b2a0462bbe40f3174955
parent9b12d0fc6bd6799ee45abed58584aeefea2df20e
MB-16656: Stream a full (disk+mem) snapshot from DCP producer on replica vb

A replica vbucket receives items from an active vbucket, and until a full
snapshot is received the data on the replica vbucket is not consistent due
to de-duplication and other reasons. Hence while streaming items to a DCP
client from a replica vbucket we need to combine backfill and in memory
snapshots and send items in one snapshot. A caveat here is the replica vb
might not have received all the items in the latest (memory) snapshot, so the
DCP client streaming from replica will have to wait till the replica gets
all the items in the latest snapshot from the active.

Change-Id: I4db622f967316d120506dc9b125211578194bb60
Reviewed-on: http://review.couchbase.org/57816
Reviewed-by: Chiyoung Seo <chiyoung@couchbase.com>
Tested-by: buildbot <build@couchbase.com>
Reviewed-by: Manu Dhundi <manu@couchbase.com>
src/dcp-stream.cc
src/dcp-stream.h
src/ep_engine.cc
tests/ep_testsuite.cc