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

Handle BGFetches correctly with Full eviction and XDCR

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • Major
    • 3.1.2, 4.1.0, 4.5.0
    • 3.1.0, 3.1.1, 4.0.0
    • couchbase-bucket
    • Security Level: Public
    • None
    • Untriaged
    • Unknown
    • KV: Sep 14 - Oct 2

    Description

      A Get issued on the destination cluster of an XDCR setup on a key that was written at the source cluster needs to be handled correctly.

      When a getMeta is issued by XDCR at the destination, only key and metadata are restored, so it is technically non-resident still. Right after this, if a GET for the same key were to be issued from the front end client - a bgfetch commences because the item is found in memory but is non-resident. As part of the bgfetch, the item is restored only if it is a temp-Initial item in case of full eviction, therefore the item isn't restored but ep-engine notifies SUCCESS to memcached, which visits ep-engine again but sees that the item is still non-resident, and issues the bgfetch again. This operation remains stuck in an infinite, causing a large number of disk reads, and also time outs for the GET operation on the client side.

      The fix would be to restore an item if it is either a tempInitial or non-resident, in the case of full eviction.

      Attachments

        Issue Links

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

          Activity

            People

              abhinav Abhi Dangeti
              abhinav Abhi Dangeti
              Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes

                  PagerDuty