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

Make sure that eviction side activity is transparent to the user

    • Storage Engines
    • StorEng - Defined Pipeline

      When calling some internal functions, the execution flow can sometimes divert to page eviction.

      If page eviction is not a directly requested operation but rather a side activity, it should remain hidden from the caller just as if it never happened. If eviction failed for any reason, the function should try and perform it's intended operation and never leak any eviction-related error codes or states to the caller.

      Some functions to pay attention to:

      • __wt_page_release
      • __wti_delete_page and __tree_walk_internal
      • __wt_sync_file
      • __cursor_reset (hello WT-11871)
      • Functions calling __wt_cache_eviction_check (maybe this function should return void to prevent error propagation?):
        • __wt_txn_rollback
        • __wt_txn_idle_cache_check
        • __wt_txn_commit
        • __wt_txn_begin
        • __wt_page_in_func
        • __wt_compact
        • __cursor_enter
      • Review functions calling __wt_evict_file:
        • __wt_verify
        • __wt_session_lock_checkpoint
        • __wt_conn_dhandle_close
        • __wt_checkpoint_close
        • __checkpoint_tree
      • Review salvage:
        • __slvg_row_build_leaf
        • __slvg_checkpoint

      Note that some inner function may need to be modified to either retry on some errors and/or add a page to the urgent eviction queue.

            Assignee:
            backlog-server-storage-engines [DO NOT USE] Backlog - Storage Engines Team
            Reporter:
            y.ershov@mongodb.com Yury Ershov
            Votes:
            0 Vote for this issue
            Watchers:
            8 Start watching this issue

              Created:
              Updated:
              Resolved: