0031 (ADR-009): Database failover semantics #36
Labels
No labels
accessibility
bug
documentation
duplicate
enhancement
good first issue
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Keel-Linux/tracker#36
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Decision (maintainer, 2026-09-30). The replica is a hot standby and does not serve traffic. Replication is synchronous: a commit is confirmed on the primary only after the replica has received it (PostgreSQL synchronous_commit; MariaDB semi-synchronous, see below). Failback: the operator chooses automatic or manual at installation, as 0020 says, default manual; Keel implements automatic failback, which happens only after the old primary has fully caught up.
Handbook:
docs/decisions/0031-database-failover-semantics.md(handbook#26)Amends: 0020 (hard part 2: asynchronous becomes synchronous / semi-synchronous for the database; failback choice and manual default kept, amended only by committing to implement automatic; the replica's read-only web tier becomes no traffic at all), 0013 (read endpoints no longer point at replicas of a pair).
Review notes (resolved by the maintainer, 2026-09-30)
rpl_semi_sync,AFTER_SYNC), which waits for the replica to receive, not apply, and falls back to async afterrpl_semi_sync_master_timeout. Galera is not what this chooses.synchronous_commitwithsynchronous_standby_names.Implementation tasks
First tasks