-
Type:
Task
-
Resolution: Fixed
-
Priority:
Critical - P2
-
Affects Version/s: None
-
Component/s: Configuration
-
Security Level: Public (Available to anyone on the web)
-
Storage Engines - Foundations
-
777.86
-
None
-
3
Issue Summary
Read-only connections are currently incompatible with disagg, as picking up a checkpoint requires modifying local metadata, which is not supported in read-only mode. This leads to errors such as:
[ERROR]: __wt_cursor_notsup, 48: Error at src/cursor/cur_std.c:48: "ENOTSUP" failed: Operation not supported [ERROR]: __wt_metadata_insert, 209: Error at src/meta/meta_table.c:209: "cursor->insert(cursor)" failed: Operation not supported [ERROR]: __disagg_save_checkpoint_meta_local, 284: Error at src/conn/conn_layered.c:284: "__wt_metadata_insert(session, metadata_key, cfg_new)" failed: Operation not supported [ERROR]: __disagg_pick_up_checkpoint, 612: Error at src/conn/conn_layered.c:612: "__disagg_save_checkpoint_meta_local(session, md_cursor, &metadata)" failed: Operation not supported [ERROR]: __disagg_pick_up_checkpoint_meta, 771: Error at src/conn/conn_layered.c:771: "ret" failed: Operation not supported [ERROR]: __wti_disagg_conn_config, 1548: Error at src/conn/conn_layered.c:1548: "ret" failed: Operation not supported
Previously, tests passed because a bug prevented writing on checkpoint pickup, but after fixing this bug, tests such as test_util23 and test_stat_log01_readonly now fail.
Context
- Disagg currently requires local metadata modifications even for read-only connections, which is incompatible with their semantics.
- There is discussion about the meaning of "read-only" in disagg (e.g., no writes to PALI but local writes allowed, or always remaining a follower).
- The team has been disabling unsupported features in similar cases, and there is consensus to do the same here.
- There is interest in eventually supporting read-only connections in disagg, potentially for use cases like verification or read-only clusters.
Proposed Solution
- Explicitly disable disagg hook for tests that use read-only connections.
- Add code to make disagg fail fast when someone tries to enable it with a read-only connection, making the lack of support explicit.
- Track support for read-only connections with disagg as a feature request for future implementation.
Original Slack thread: Slack Thread
This ticket was generated by AI from a Slack thread.