-
Type:
Bug
-
Resolution: Fixed
-
Priority:
Critical - P2
-
Affects Version/s: None
-
Component/s: Layered Tables
-
Storage Engines, Storage Engines - Foundations
-
SE Foundations - 2025-10-10
-
8
-
222
Currently we we try to find the new prune_timestamp during the checkpoint pick up process we use global conn->disaggregated_storage->ds_track structure to find the oldest checkpoint which is currently in use. The timestamp from this checkpoint is then used as the new prune_timestamp value.
This ds_track structure contains two fields: order and timestamp which we track every time we do a checkpoint pickup. Order is number that is followed by the "WiredTigerCheckpoint" for the last checkpoint for the metadata table.Â
During the process of searching for the last checkpoint we compare this metadata table checkpoint order with the current table checkpoint order (we obtain it through __layered_last_checkpoint_order()) which is incorrect since the checkpoint order is a thing that is local for every table and they are not related.
Please see WT-15158 for more details about how it was discovered.
It does require some investigating some long-term solutions, currently options that we have on mind are:
- Using some global database wide checkpoint ID for that purpose (OpLog checkpoint LSN might be a good candidate)
- Track checkpoints in use locally for every table that could increase our memory consumption, but could help us to define pruning_timestamp faster and more accuratelyÂ
- is depended on by
-
SERVER-111005 Re-enable txn_apply_with_yield.js once WT bug is resolved
-
- Needs Scheduling
-
- is related to
-
WT-15667 Handle abandoned checkpoints in PALite
-
- Closed
-
-
WT-15158 __layered_update_gc_ingest_tables_prune_timestamps WT_ASSERT(session, prune_timestamp >= btree->prune_timestamp) failing while running hello_with_standby.js
-
- Closed
-
-
WT-15488 test_verify.py fails with mismatch in page IDs from PALM and btree walk
-
- Closed
-
-
WT-15640 __wti_page_inmem_updates assertion failure (disagg)
-
- Closed
-
-
WT-15648 Fix memory heap-use-after-free issue when packing the internal page delta
-
- Closed
-
-
WT-15661 Memory leak in reconciliation in disagg
-
- Closed
-
-
WT-15191 Write a regression test for WT-15158
-
- Closed
-
-
WT-15413 Verify accounts for followers missing stable constituent prior to checkpoint pickup
-
- Closed
-
-
WT-15623 Add realtime output to run.py
-
- Closed
-
-
WT-15647 Fix dhandles reference counting when we find an existing one
-
- Closed
-
-
WT-15658 Disable block cache in WT
-
- Closed
-
-
WT-15687 Add stat to track in-memory restorations due to invisible updates
-
- Closed
-
-
WT-15644 Add verbose logging for disagg checkpoints
-
- Closed
-
-
WT-15670 Fix verify output in test/format
-
- Closed
-
-
WT-15683 Fix comment describing __wt_btree_bytes_updates
-
- Closed
-
-
WT-15519 Abort when seeing OOO keys in __verify_row_key_order_check
-
- Closed
-
-
WT-15279 Fix race in prefetch where the same page is selected by two threads
-
- Closed
-
-
WT-15602 test/format (disagg.mode=switch) heap-use-after-free when comparing keys in disagg
-
- Closed
-
-
WT-15603 test_wt4105_large_doc_small_upd: assertion failure
-
- Closed
-
- related to
-
SERVER-111161 Invariant failure: _conn->reconfigure(_conn, getCkptMetaConfigString.c_str()) WT_NOTFOUND
-
- Closed
-
-
WT-14885 Rewrite pages with delta directly to a full page
-
- Closed
-
-
WT-15595 Ignore eviction target/trigger in follower mode
-
- Closed
-