Someone told me that running queries on a readable secondary in an AG can slow down (or even block) the primary (no matter if it's in sync or async mode).
I do not understand how this is possible. I'll try to explain why I think this is not possible.
- Sync mode:
Log records are sent to the secondary and when those records are hardened on the secondary (written to log file) an ACK is sent to the primary and the transaction is committed on the primary.
If there is some latency on sending the ACK this can affect the primary but I think this can't be caused by a query running on the secondary.
- Async mode:
Log records are sent to the secondary and the primary isn't waiting for an ACK from the secondary, it is just 'fire and forget'.
What can happen is that the REDO-thread is blocked by a long running query => changes can't be applied to the secondary but I think this doesn't affect the performance on the primary.
Is my assumption correct or am I missing something?