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

Remove or restrict the usage of CheckpointManager::updateCurrentSnapshot()

    XMLWordPrintable

Details

    • Task
    • Resolution: Fixed
    • Major
    • 7.0.0
    • Cheshire-Cat
    • couchbase-bucket
    • None
    • 1

    Description

      Used only by PassiveStream::processMarker().
      I've seen enough issues caused by the unnecessary complexity of merging multiple snapshots of different type (disk/memory) into the same checkpoint at replica. Eg, MB-41283 and MB-42780.
      It would be nice to remove the function. But the problem is that we may end up creating many (thousands) checkpoints when the system in under load and replica receives many Memory snapshots from the active.

      At least we should avoid to use the function at snapshot transition (ie, disk->memory or memory->disk). Ie, at snapshot transition replica should always create a new checkpoint for storing the new incoming snapshot.
      Note: In theory the active should always set the MARKER_FLAG_CHK when transitioning from a snapshot type to another. I believe that since 6.5.0 we get it right, but before 6.5.0 we had issues in that area (eg, MB-32862). So, we should probably make replica resilient to any Active misbehaviour with regard to MARKER_FLAG_CHK. That would avoid further issues like MB-41283 and MB-42780.

      Attachments

        Issue Links

          Activity

            People

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

              Dates

                Created:
                Updated:
                Resolved:

                PagerDuty