Skip to content

Discover standby for apply-wait read routing - #25

Merged
skhe merged 1 commit into
mainfrom
codex/rwseparate-standby-discovery
Sep 26, 2026
Merged

skhe merged 1 commit into
mainfrom
codex/rwseparate-standby-discovery

Conversation

@skhe

@skhe skhe commented Sep 26, 2026

Copy link
Copy Markdown
Owner

Summary

  • Resolve rwseparate=4 when the DM8 login response omits standby host/port. The driver now discovers a valid standby through primary metadata instead of dialing :0.
  • Guard cleanup after failed standby metadata queries when no statement or rows were returned.
  • Add a repeatable real-cluster verifier and document the tested scope.

Verification

  • Local Orb DM8 ARM primary/standby/monitor: direct roles were PRIMARY, OPEN and STANDBY, OPEN with the same OGUID.
  • ARM Linux dmPython: modes 0/1/4 routed a read-only query to primary/standby/standby with autocommit enabled and 0% primary reads.
  • DECIMAL(30,8) written through mode 4 replicated to standby without losing fractional digits.
  • Vendored Go tests passed; ordinary GB18030 real-database suite: 192 passed, 6 deselected.
  • git diff --check and Python compile passed.

Scope limit

  • HA verification currently runs locally because GitHub hosted runners cannot reach this Orb cluster. The GitHub CI matrix validates the code change against its existing single-node real-DM and build gates.
  • A stop-primary trial did not prove automatic takeover: the monitor remained in confirmation mode and the standby stayed STANDBY, OPEN. This is recorded in the test report; no failover claim is made.

@skhe
skhe merged commit c7951e4 into main Sep 26, 2026
19 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant