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

Do not remove unstable updates of an in-memory database btree page

    • Type: Icon: Bug Bug
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • WT10.0.0, 4.9.0-rc1, 4.4.7, 5.0.0-rc0
    • Affects Version/s: None
    • Component/s: None
    • Labels:
    • 3
    • Storage - Ra 2021-04-05

      As described in BF-20122, sometimes in in-memory database configuration, the index inconsistencies are observed as missing index entries.

      WT doesn't write any pages to disk during reconciliation of a page in the in-memory database configuration and it retains the written new page image into the memory. But these pages are marked as clean once the reconciliation is finished and removed the unstable updates in the corner scenario where the selected update to write to disk has both start and stop time windows where the start time window is globally visible and but not the stop.

      During the RTS process, the page is marked as clean, RTS tried to check the aggregated timestamp values from the written image and there is no disk image exists for in-memory database, so this page is skipped to process during rollback to stable. Skipping these clean pages leads to an inconsistency problem.

      To fix this problem, fix not to remove the unstable updates from the page if they are not globally visible and change the default behaviour of RTS to process for unstable updates whenever an aggregated time window is not available.

            haribabu.kommi@mongodb.com Haribabu Kommi
            haribabu.kommi@mongodb.com Haribabu Kommi
            0 Vote for this issue
            5 Start watching this issue