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

Add support for specifying TTL DeleteSource via DELETE_WTH_META

    XMLWordPrintable

Details

    • Improvement
    • Resolution: Fixed
    • Major
    • None
    • 6.5.0
    • DCP, XDCR
    • None

    Description

      Once document expirations in DCP are utilising the specific DCP Expire (0x59) opcode rather than the DCP Delete (0x58) opcode, as per MB-26907, Couchbase Server should replicate these expirations natively via XDCR to remote clusters.

      That is to say the remote end of an XDCR relationship should receive a delete message which specifies the source of the delete was TTL. rather than the current Delete_with_Meta which has an implicit DeleteSource of "Expliticty deleted". If XDCR sends a Delete_with_Meta in response to receiving a DCP Expire, there is no way for the remote cluster to be able to replicate this its own DCP consumers as a document expiry, such as intra-cluster replication, Eventing, and onward XDCR.

      To solve this issue, as now detailed in the docs for Delete_With_Meta, there now exists a new options flag named IS_EXPIRATION which can be used with a delete_with_meta op to denote that it instead refers to an expiration. This correctly sets the DeleteSource inside KV to be TTL instead of the default explicit. The optionality of this flag allows for users of delete_with_meta that haven't updated to support this to continue processing expirations as deletions. However, this does also mean utilising their feature breaks the expiry opcode output feature until they do support it.

      Attachments

        Issue Links

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

          Activity

            People

              christopher.farman christopher farman (Inactive)
              phil.stott Phil Stott (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes

                  PagerDuty