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

Remove excess ckplist invalidations

    • Type: Icon: Improvement Improvement
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • WT10.0.1, 4.4.9, 5.0.3, 5.1.0-rc0
    • Affects Version/s: None
    • Component/s: None
    • Labels:
    • 2
    • Storage - Ra 2021-06-14, Storage - Ra 2021-07-26, Storage - Ra 2021-08-09

      This ticket tracks some of the work required after merging WT-7381 to refactor and clean up the code:

      Evaluate if we need to free the checkpoint list multiple times in __wt_checkpoint_close(). This came out of code review for WT-7381, following the comment. Initially there were a couple more places the initial change followed the pattern:

      // Take a checkpoint for an individual file

      The initial objective here was to clean the saved checkpoint list before checkpointing an individual file, and then clean after. The intention here was that as part of the system-wide checkpoint, a file slow paths by reading checkpoints from metadata, if that file was checkpointed outside the periodic system checkpointing.

      Over the course of refining the change, __wt_checkpoint_close is the only place left with this pattern, and might not actually need clearing the saved list after the checkpoint, because it will likely be destroyed by a btree close. So we can likely get rid of that extra call to __wt_checkpoint_close().

      Also, with a refactor of how we use the saved checkpoint list, WT-7524, the usage became more widely available to all the callers of __wt_meta_ckptlist_get.

      This ticket will try to find the calls to __wt_meta_saved_ckptlist_free() that are not needed anymore, and get rid of them.

            sulabh.mahajan@mongodb.com Sulabh Mahajan
            sulabh.mahajan@mongodb.com Sulabh Mahajan
            0 Vote for this issue
            2 Start watching this issue