Move the checkpoint pickup btree id validation into file metadata update

XMLWordPrintableJSON

    • Type: Improvement
    • Resolution: Fixed
    • Priority: Major - P3
    • WT12.0.0, 9.1.0-rc0
    • Affects Version/s: None
    • Component/s: Metadata
    • None
    • Storage Engines - Transactions
    • 183.316
    • SE Transactions - 2026-09-11
    • 3

      WT-14730 added validation of immutable metadata fields on disagg checkpoint pickup. In non-diagnostic builds it validates the btree id of every file: entry present in both the local and the shared metadata, it compares the two configuration strings, and when they differ, extracts id from each with a separate __wt_config_getones scan.

      This caused WT-18502, a ~13% regression in disagg follower reconfigure pickup. When the leader has dirtied a table, its metadata entry always differs(new checkpoint), so the byte-compare fast path never helps and every dirtied entry pays two extra full config scans — work that duplicates the parsing  __disagg_update_file_meta does immediately afterwards, which already extracts the checkpoint field from both values.

      Fix:
      1. Extract checkpoint and id from each metadata value in a single config walk inside  __disagg_update_file_meta.
      2. Make  __disagg_check_meta_match (the full field-by-field comparison) and its call in the pickup walk diagnostic-only.

            Assignee:
            Zunyi Liu
            Reporter:
            Zunyi Liu
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: