-
Type:
Task
-
Resolution: Unresolved
-
Priority:
Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
None
-
Storage Engines, Storage Engines - Transactions
-
0.046
-
SE Transactions - 2026-10-23, SE Transactions - 2026-11-06
-
5
Background
Design: WRITING-39975. Scope: WRITING-39974. Epic: SPM-4886. Related: WT-18390, AF-19923, AF-19942.
When a follower becomes the leader, WiredTiger copies its pending ingest changes into the stable table. This is the drain. A blind remove written on the follower may be for a key that is not in stable. An earlier version of blind deletes stopped the process on this case, which caused crash loops after restart.
Change
- The drain applies such a remove anyway, which has no effect, and moves on.
- The drain never stops the node because of this, in any build, including diagnostic builds.
- At the end of each table's drain, log one warning if any such removes were found. The warning names the table and gives the number found. A remove of a key that is not there should not happen, so a non-zero number may point to a caller bug.
Statistics
Added in the same PR:
- disagg_step_up_ingest_drain_orphan_remove: step up ingest table drain orphan removes encountered.
Tests
Python tests in the same PR cover:
- Step-up after follower blind removes of keys that are not in stable: no panic or abort, in diagnostic and release builds.
- Step-up after follower blind removes of keys that are in stable: the keys are gone and the statistic stays at zero.
- One warning per table with the correct count, and no warning when no orphan removes exist.
- The statistic counts orphan removes.
- The node restarts cleanly after step-up with orphan removes in the ingest table.
Acceptance criteria
- No orphan remove stops the drain in any build.
- Warning and statistic match the design.
- New tests pass, and fail without the change.
Depends on
Follower blind remove ticket.
- depends on
-
WT-18920 Implement follower blind remove in the layered cursor
-
- In Code Review
-
- is depended on by
-
WT-18978 Enable blind_remove in test/format for layered table runs
-
- Open
-
-
SERVER-137754 Set WiredTiger blind_remove for follower oplog application removes
-
- Backlog
-
- is fixed by
-
WT-18042 Support two tombstones landing on the same key (layered table remove)
-
- Closed
-