ExportXMLWordPrintableJSON

    • Type: Task
    • Resolution: Unresolved
    • Priority: Major - P3
    • None
    • Affects Version/s: None
    • Component/s: Block Cache
    • None
    • Storage Engines - Persistence
    • 44.934
    • StorEng - Defined Pipeline
    • None

      Part of WT-18574, on the block-cache-depr feature branch. Final source ticket: after S1 (deprecation check) and S2 (call sites and statistics gone), delete the WT_BLKCACHE core and the memkind build dependency, and document the removal.

      Work

      • Move __wt_blkcache_open from block_cache.c to block_mgr.c, keeping the name (callers untouched) and behavior: disagg dispatch, file: prefix and unsupported-URI handling, the leftover-tiered-URI rejection (tiered URIs must never map onto a file), forced-salvage, readonly, allocsize, live-restore metadata, error cleanup. Update the comment in test/catch2/block/util_block.cpp. Close WT-14642 as Fixed on merge.
      • Delete block_cache.c/block_cache.h, the WT_BLKCACHE connection state/typedefs, and the __wt_blkcache_destroy call in conn_open.c. Update dist/filelist, dist/filelist.bzl, CMake source lists, MODULARITY.md. Keep block_io.c, block_map.c, block_mgr.c and their module; the src/block_cache/ directory and module name stay — renaming is out of scope.
      • Verify the 22 legacy counters are gone — S1 and S2 delete them with their last updater. Keep the seven victim-cache counters: block_cache_puts, block_cache_app_thread_puts, block_cache_put_time, block_cache_app_thread_put_time, block_cache_put_time_max, block_cache_put_failures, block_cache_cold_not_cached.
      • Build: remove ENABLE_MEMKIND, HAVE_LIBMEMKIND, memkind detection/linking, wiredtiger_config.h.in macros and the pkg-config linkage. Clean dist/s_string.ok if s_string flags memkind/libmemkind as unused.
      • Docs: add the upgrade note to src/docs/upgrading.dox (enabled=true errors, disabled settings warn and are ignored, persisted basecfg with enabled=true needs a block_cache=(enabled=false) override to reopen, stats and build changes, victim cache unaffected, no migration). Fix page-log comments in wiredtiger.h.in to say "victim cache" without renaming public APIs. Update AGENTS.md and the stale blkcache_exiting example in src/include/hardware.h.
      • Tooling: review s_clang_scan.diff, dist/s_string.ok, tools/callgraph (keep the block_cache module's blkcache alias) and tools/wt-ret-trace1 (keep — it references the surviving __blkcache_read_corrupt).
      • File a tech-debt ticket to rename the shared helpers that keep blkcache names (_wt_blkcache_read, wt_blkcache_read_multi, wt_blkcache_write, _wt_blkcache_open) — renames are deliberately out of the removal PRs to keep them reviewable.

      Acceptance

      • No references to WT_BLKCACHE or the get/put/remove/setup/destroy functions.
      • Prototypes/config/stats/bindings regenerated (dist/s_all, dist/s_docs); victim-cache names resolve.
      • test_evict_disagg_cache_eligible.cpp compiles unchanged (direct block_cache_cold_not_cached field access).
      • Static/shared, diagnostic, sanitizer, macOS/Windows, import/live-restore and disagg gates pass.
      • Builds with and without memkind installed never link it.

      Dependencies

      S1 and S2 merged; rebase after both. Blocks integration.

            Assignee:
            [DO NOT USE] Backlog - Storage Engines Team
            Reporter:
            Mariam Mojid
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: