Uploaded image for project: 'Couchbase Server'
  1. Couchbase Server
  2. MB-46388

Investigate re-design of DCP for splitting data/control message over dedicated physical links

    XMLWordPrintable

Details

    • Improvement
    • Resolution: Won't Do
    • Minor
    • None
    • None
    • couchbase-bucket
    • 1

    Description

      In MB-31869 we tried to remove the DCP buffering but we had to step back. Reason is that ns_server needs to be able to send DCP (non-data) messages (eg, AddStream, CloseStream, ..) at any time, so we cannot allow a DCP Consumer to saturate the socket inbound buffer. See MB-31869 for details.

      All the above may be resolved if the DCP protocol allowed to split the "control" messages and the data messages over two dedicated physical connections. Eg for setting up a stream, from the PoV of the DCP client that would be:

      1. open ControlConnection
      2. open DataConnection
      3. send AddStream to the consumer-side on ControlConnection - at this point this step should trigger a StreamReq consumer->producer over DataConnection
      4. <data flows over DataConnection>

      That would allow again to get rid of the DCP buffering in KV, as no problem on saturating the Data link.

      What described cannot be achieved with the current DCP design.

      Attachments

        Issue Links

          No reviews matched the request. Check your Options in the drop-down menu of this sections header.

          Activity

            People

              paolo.cocchi Paolo Cocchi
              paolo.cocchi Paolo Cocchi
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes

                  PagerDuty