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

DCP Consumer might allocate over the checkpoint quota at buffering

Details

    • Triaged
    • 0
    • Yes
    • March-June 24

    Description

      With MB-31869 we have removed the dedicated DCP Consumer Buffer (7.6.0).
      By that, when a Consumer node enters a OOM phase, DCP Consumer start buffering incoming messaged into Checkpoints.
      For those messages we don't (and we can't) enforce the CheckpointQuota by design, as Consumers must be always allowed to process and buffer DCP messages up to limits defined by the dcp_consumer_buffer_ratio config param.

      What described so far isn't an issue by itself, but things might appear confusing when looking at cbcollects for 7.6.x.
      Eg, we might observe allocations in the Checkpoints that cross the CheckpointQuota. Is that an error in the Checkpoint memory management or we have just buffered DCP messages in the checkpoits?

      Possible alternative fixes:

      1. Account/reserve dcp_consumer_buffer_ratio into checkpoint_memory_ratio
      2. Expose the real checkpoint mem-usage limit, which is (checkpoint_memory_ratio + dcp_consumer_buffer_ratio)

      Problem with (1) is that it would lead to sub-utilization of the checkpoint quota for scenarios where there's no Consumer buffering at all.
      We are doing (2).

      Attachments

        For Gerrit Dashboard: MB-61525
        # Subject Branch Project Status CR V

        Activity

          People

            hareen.kancharla Hareen Kancharla
            paolo.cocchi Paolo Cocchi
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:

              Gerrit Reviews

                There is 1 open Gerrit change

                PagerDuty