Description
Artem:
DCP_GET_FAILOVER_LOG over non DCP connection
This command is used in _pre_replicate handler for xdcr, and we have to open DCP producer connection just to get the failover log (and keep a pool of those just for this command only).
Is it possible to introduce a command that does the same but works via regular connection like the one we create in ns_memcached:connect ?
Trond:
I don't see any reason why not
(I actually don't see any reason why the DCP_GET_FAILOVER_LOG should be bound to an open DCP connection in the first place, as it isn't bound to the internal state of the dcp stream. The documentation ( https://github.com/couchbaselabs/dcp-documentation/blob/master/documentation/commands/failover-log.md ) doesn't even mention that it needs to be an open DCP stream, but the implementation does check for it).
Dave Rigby:
I’ve looked at the code and the only reason I can see why it requires a DCP Producer stream is because it wouldn’t make sense to ask a a Consumer stream for a failover log - however that’s somewhat of an academic distinction.
I can’t see any issue in adding support for asking for the failover log without a DCP connection.
@Artem: Please could you raise an improvement MB with exactly what you’d like the standalone “get failover log” command to do - and how soon you need this for.
Attachments
Issue Links
- blocks
-
MB-28581 remove xdcr_dcp_streamer when MB-28289 is resolved
- Closed
For Gerrit Dashboard: MB-28289 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
90169,3 | temporarily return xdcr_dcp_sockets_pool to ns_server node | master | ns_server | Status: MERGED | +2 | +1 |
90527,11 | MB-28289: Allow GetFailoverLog on a regular-MCBP connection | master | kv_engine | Status: MERGED | +2 | +1 |
90743,3 | MB-28289: Fix SegFault in GetFailoverLog for non-existing VBucket | master | kv_engine | Status: MERGED | +2 | +1 |