-
Type:
Task
-
Resolution: Unresolved
-
Priority:
Major - P3
-
None
-
Affects Version/s: None
-
Component/s: Metadata
-
None
-
Storage Engines - Foundations
-
None
-
None
Adding a new connection config option can easily result in an upgrade/downgrade problem, because WiredTiger writes the connection config to WiredTiger.basecfg when the database gets created. Opening the database by an older version of WiredTiger then fails with an error such as this (WT-17166):
[1776106369:411752][325733:0x735aa21e56c0], wt, wiredtiger_open: [WT_VERB_DEFAULT][ERROR]: int __config_check_search(WT_SESSION_IMPL *, const WT_CONFIG_CHECK *, u_int, const WT_CONFIG_ITEM *, const uint8_t *, const WT_CONFIG_CHECK **), 114: unknown configuration key 'checkpoint_threads': Invalid argument wt: WT_TRY_SALVAGE: database corruption detected
However, many such configuration parameters do not need to be preserved, as they do not affect the on-disk state, and we strip them in __conn_write_base_config.
It may be thus worth for us to:
- Audit which parameters are preserved, and which should not be.
- Decide if it is worth preserving new parameters by default (as we do currently), or if they should be stripped by default instead.