-
Type:
Technical Debt
-
Resolution: Unresolved
-
Priority:
Major - P3
-
None
-
Affects Version/s: None
-
Component/s: Schema Management
-
None
-
Storage Engines - Foundations
-
59.09
-
None
-
None
Issue Summary
WT-15242 identifies shared (disaggregated) trees by their block_manager=disagg configuration instead of the ".wt_stable" file name. Metadata entries written by earlier releases carry no such setting, so the btree open path, the file creation path and the code that scans metadata entries still treat a ".wt_stable" name as shared. These name checks exist only for legacy entries and keep the naming assumption alive.
Context
- Entries written before
WT-15242(for example by mongodb-9.0 nodes) have no block_manager setting on shared trees, including the shared metadata table and the shared history store. - Every shared file created by the current code has block_manager=disagg, so the name check is redundant for new databases and for any database whose entries have all been rewritten.
- The name check stays until we can show that no database in use has a legacy entry, whether in local metadata, in the shared metadata table, or in any checkpoint a node may still pick up.
- Related:
WT-15242, and the remaining WT_URI_IS_STABLE users, which are naming-convention sites outside this ticket.
Proposed Solution
- Confirm which releases wrote entries without the setting, and that no supported deployment can still read or pick up such a database or checkpoint.
- Drop the name fallback at btree open, in the file creation path and in the metadata scans, so the configuration is the only source of truth.
- Remove the legacy test and the compatibility test scenarios that depend on the fallback.
Definition of Done
- No code decides that a tree is shared from its file name.
- Compatibility tests that open or pick up databases from older releases are removed or adjusted, and the rest pass.
- is related to
-
WT-15242
Replace "wt_stable" filename check in __btree_conf
-
- Closed
-