Details
-
Bug
-
Resolution: Unresolved
-
Major
-
None
-
None
-
None
-
1
-
SDK34
Description
From discussion with D. Rigby: A DCP connection (with streams established) will automatically tell you about any changes in vBucket state on that node - if a vbucket changes from the state it was in when the stream was established; the stream will be ended via a StreamEnd::StateChanged message. In other words, if you're only using DCP, then GET_CLUSTER_CONFIG on the DCP connection(s) are of little value; and moreover are at risk of high runtimes (from client's pov) as they must drain all the outstanding DCP messages before they will see the GET_CLUSTER_CONFIG response.
When topology changes the stream will be ended, at which point the user will send a new stream open request and if the cluster topology has indeed changed (and no CCCP request was sent in the interim) then if the request went to the wrong node the SDK would get a not my vbucket error at which point it'd update its topology anyway.
Due to this we should only use HTTP polling for DCP.