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

[CX] No way to wait for Flushes

    XMLWordPrintable

Details

    • CX Sprint 100, CX Sprint 101, CX Sprint 102, CX Sprint 103

    Description

      Currently, at certain times, we need to perform synchronous flush operations over dataests/partitions. Such times include evicting a dataset, shutdown, disconnect bucket.

      In such cases, there is no easy way to wait for precisely the flush operations scheduled. To workaround this, we call DatasetInfo.waitForIO which waits for all IO operations on all indexes in all partitions. To make things worse, subsequent merges that are scheduled due to the flush operation causes the IO counter to increase and we end up waiting for those as well.

      We need a better way to do this for flush operations only per index/partition/dataset.

      During two operations, the user can see the effect of this:

      1. Bucket Disconnect.
      2. Rebalance.

      Both operations need to wait until the data that was in memory is persisted to disk.
      Currently, they not only wait for flushes but also for merges that are triggered by those flushes.

      Attachments

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

        Activity

          People

            michael.blow Michael Blow
            Abdullah.Alamoudi Abdullah Alamoudi [X] (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes

                PagerDuty