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

Fix race between flush_tier and checkpoint

    • Type: Icon: Bug Bug
    • Resolution: Works as Designed
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None

      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.

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

              Created:
              Updated:
              Resolved: