-
Type:
Technical Debt
-
Resolution: Unresolved
-
Priority:
Minor - P4
-
None
-
Affects Version/s: None
-
Component/s: Block Manager
-
Storage Engines, Storage Engines - Persistence
-
163.136
-
SE Persistence backlog
-
None
Issue Summary
The comment guarding the block_lock / blockqh initialization in src/conn/conn_handle.c is now stale and misleading. It reads:
/\* \* Block manager. XXX If there's ever a second block manager, we'll want to make this more \* opaque, but for now this is simpler. \*/
Both a local block manager (src/block/) and a disaggregated block manager (src/block_disagg/) now coexist and share the same conn->block_lock spinlock and conn->blockqh / conn->blockhash structures. The condition the XXX was waiting for has arrived.
Context
* File: src/conn/conn_handle.c, around line 68
* Why it was written: at the time only one block manager existed; the comment was a forward-looking note to revisit the design if a second one was added.
* Current state: WT_BLOCK_DISAGG intentionally mirrors the first fields of WT_BLOCK (shared-prefix layout), allowing both types to be inserted into the same blockqh / blockhash queues under the same block_lock. This is enforced by static asserts in src/include/verify_build.h.
* Risk of leaving it: the XXX implies the current design is a temporary shortcut that needs reworking, which is no longer true. It misleads future readers into thinking a refactor is still required.
Proposed Solution
* Remove the XXX block comment entirely.
* Replace with a concise, accurate comment explaining that block_lock and blockqh are intentionally shared across all block manager implementations (local and disaggregated).
* Suggested replacement:
/\* Block manager list and lock; shared by local and disaggregated block manager implementations. \*/
Definition of done: stale XXX comment removed, accurate replacement comment in place, s_all passes cleanly.