"Even if a disconnected replica is configured for synchronous-commit mode, transactions won't wait for that replica to reconnect and resynchronize."
This documentation tell us a little bit about what happens when the connection recovers.
"When the secondary replica reconnects with the primary replica, they resume synchronous-commit mode."
However, I cannot find any specifics. Suppose that:
- I have an Availability Group on Windows Server Failover Clustering with one primary and one synchronous secondary.
- My quorum is always perfect.
REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMITis not set.- At 08:00, the session timeout for the synchronous replica expires.
- At 08:15, the connection recovers and the replica is 15 minutes behind.
At what point will commits on the primary need to wait on the once-synchronous secondary hardening them? I see three possibilities:
- A: Commits on the primary begin waiting immediately and will be stalled until the synchronous replica has caught up with the lost 15 minutes of hardening.
- B: Until the secondary has caught up with the lost 15 minutes, it is effectively asynchronous. It will become synchronous again, causing commits on the primary to wait, only after it has caught up.
- C: Any of the above, but including a manual step from an administrator to tell the replica that it can start accepting data again.
I would prefer B, but I cannot find any documentation saying that B is the case.