Skip to content

Support MySQL replication named channels (multi-source replication) #77

@renecannao

Description

@renecannao

MySQL Named Channels Support

Orchestrator currently assumes single-source replication (one MasterKey per replica). MySQL multi-source replication with named channels breaks this assumption at every layer.

Current failures

  1. Discovery: only the last row from SHOW REPLICA STATUS survives
  2. CHANGE REPLICATION SOURCE TO fails with error 3077 on multi-source replicas
  3. STOP/START REPLICA affects all channels, not just the intended one
  4. Topology graph misplaces multi-source replicas
  5. Failover breaks other channels when promoting a multi-source replica

Implementation plan

Phase 1: Data modelChannelStatus struct, database_instance_channels table, Instance struct extension

Phase 2: Discovery — Parse all SHOW REPLICA STATUS rows, store per-channel, choose canonical MasterKey

Phase 3: Channel-aware operations — All replication commands get FOR CHANNEL variants

Phase 4: Topology & visualization — Handle multi-parent nodes in topology graph and web UI

Phase 5: Failover — Channel-aware recovery that preserves non-managed channels

Phase 6: Testing — Functional tests with multi-source MySQL topology in CI

See detailed research in the implementation branch.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions