-
Type:
Improvement
-
Resolution: Unresolved
-
Priority:
Major - P3
-
None
-
Affects Version/s: None
-
Component/s: Configuration
-
None
-
Storage Engines, Storage Engines - Persistence
-
21.791
-
SE Persistence backlog
-
None
The disaggregated configuration can be set at both the connection level and the
table level. For example:
# Connection-level: the page log. conn = wiredtiger_open("disaggregated=(page_log=palite,...)") # Table-level: the storage tier. session.create("layered:test", "disaggregated=(storage_tier=cold)")
One may assume both disaggregated fields make it into the layered metadata: the
page_log from the connection and the table's own storage_tier.
However, test_layered_schema31.py shows this is not the case. The page_log is omitted.
The root cause is as follows:
In __create_layered, the configuration across the connection and the table is placed
in the variable layered_cfg:
layered_cfg[1] = "disaggregated=(page_log=whatever)"; // connection layered_cfg[2] = "disaggregated=(storage_tier=cold)"; // table
__wt_config_collapse, called in __create_layered, takes settings at higher
layered_cfg indices over lower ones. What it should do instead is merge the inner
fields of disaggregated across both levels.
Note that despite page_log being omitted from the metadata, the rest of the code copes
with a fallback like this:
if (ret == WT_NOTFOUND || page_log_item.len == 0)
npage_log = S2C(session)->disaggregated_storage.npage_log;
- is related to
-
WT-18369 Step-up rebuilds a layered table's stable constituent with the default configuration
-
- Closed
-