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

Do not retry to force evict history store pages during reconciliation

    • 5
    • 2023-04-04 Bibbidi-Bobbidi-Boo, 2023-04-18 Leviosa Not Leviosa, 2023-05-02 StorEng Bug Bash
    • v7.0, v6.0, v5.0, v4.4

      WiredTiger avoids the session that is performing the reconciliation for any eviction-related activities as part of the page read mechanism except when the page is possible for the in-memory split.

      The eviction performing an in-memory split can fail due to not getting an exclusive lock on the page as other threads use it in parallel. In this situation, that session trying to force eviction of the history store page can retry for a longer time by stalling the reconciliation process. This led to a longer reconciliation of a single page as part of the eviction.

      The longer the eviction holds the page, all the operations that are waiting for the same page can get blocked and the performance of those operations can affect.

      To fix this problem,

      • Try to reproduce the problem with a WT test case.
      • Verify the test after fixing the problem by not to retry if the session is set for reconciliation.

        1. Screenshot_Develop_Fix.png
          132 kB
        2. Screenshot_Develop.png
          120 kB
        3. Screenshot 2023-03-29 at 10.36.49 pm.png
          Screenshot 2023-03-29 at 10.36.49 pm.png
          160 kB

            ravi.giri@mongodb.com Ravi Giri
            haribabu.kommi@mongodb.com Haribabu Kommi
            0 Vote for this issue
            12 Start watching this issue