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

Add a stat to track when we abort reconciliation because we cannot make progress

    • Type: Icon: Task Task
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • WT11.3.0, 7.3.0-rc0, 7.0.13
    • Affects Version/s: None
    • Component/s: None
    • None
    • Storage Engines
    • v7.0

          /*
           * If eviction didn't use any updates and didn't split or delete the page, it didn't make
           * progress. Give up rather than silently succeeding in doing no work: this way threads know to
           * back off forced eviction rather than spinning.
           *
           * Do not return an error if we are syncing the file with eviction disabled or as part of a
           * checkpoint.
           */
          if (ret == 0 && !(btree->evict_disabled > 0 || !F_ISSET(btree->dhandle, WT_DHANDLE_OPEN)) &&
            F_ISSET(r, WT_REC_EVICT) && !WT_PAGE_IS_INTERNAL(r->page) && r->multi_next == 1 &&
            F_ISSET(r, WT_REC_CALL_URGENT) && !r->update_used && r->cache_write_restore)
              ret = __wt_set_return(session, EBUSY);
      

      I found in all the places reconciliation returns ebusy we have a stat to track that except this. This has caused us more time to track down the issue in BF-28715 that is related to this check. Add a stat here to make diagnostic easier in this case.

            Assignee:
            backlog-server-storage-engines [DO NOT USE] Backlog - Storage Engines Team
            Reporter:
            chenhao.qu@mongodb.com Chenhao Qu
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: