Explicitly disable read-only connections with disagg and track support as a feature request

XMLWordPrintableJSON

    • 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.

            Assignee:
            Ivan Kochin
            Reporter:
            Memento Slack Bot
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

              Created:
              Updated:
              Resolved: