-
Type:
Task
-
Resolution: Unresolved
-
Priority:
Major - P3
-
None
-
Affects Version/s: None
-
Component/s: Block Manager
-
None
-
Storage Engines - Persistence
-
13.066
-
SE Persistence backlog
-
None
WiredTiger allows the storage infrastructure behind the PALI layer to perform "offline" modifications to a page outside of the regular reconciliation path. We currently use this only in the block victim cache, in which WiredTiger caches a flattened version of a page, and then gets it back from PALI via __block_disagg_read_multiple. Needless to say, such "offline" modification changes the checksum of the page, because the page is no longer the original page.
As of WT-16511, to verify that we are reading back the correct version of the page that we have expected, WiredTiger turns on the WT_BLOCK_DISAGG_MODIFIED flag and stores the checksum of the original page in previous_checksum. __block_disagg_read_multiple then uses swap.previous_checksum instead of swap.checksum to compare it with the expected checksum obtained from the internal page.
However, this design results in the meaning of the previous_checksum field being overloaded based on the value of the flags, and more importantly, it prevents us from supporting offline-modified delta pages in the future. As such, we should store the value of the original checksum in a new dedicated field original_checksum.
- is related to
-
WT-16511 Consider adding original_checksum field to disagg block header
-
- In Progress
-