Uploaded image for project: 'WiredTiger'
  1. WiredTiger
  2. WT-7728

Fix race between flush_tier and checkpoint

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major - P3
    • Resolution: Works as Designed
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: None
    • Labels:

      Description

      WT-7724 identified a race when we have concurrent checkpoint and flush_tier calls. That ticket provided a "quick fix" of taking the checkpoint lock during the competing portion of flush_tier.  

      Intuitively, this seems unnecessary. We should be able to flush_tier during a checkpoint. The required coordination can happen in the block manager, which simply has to ensure that every block is written and that at some point before we flush it to the shared tier, we have to stop writting blocks to the old file/object.

      As described in WT-7724, the actual race seems related to the cached checkpoint list introduced in WT-7381

      The goal of this ticket is to understand the actual race and introduce a (hopefully) lower-cost way to avoid it.

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              keith.smith Keith Smith
              Reporter:
              keith.smith Keith Smith
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved: