▲ | gpavanb 18 hours ago | |
I'd be happy to make the changes to the codebase but there's definitely scope for improvement. Putting a sleep to avoid repeated lock acquisition should have raised an eyebrow or two when it was implemented. As mentioned, there should be a read-replica specific code that works using event listeners. Repurposing the primary's code is what causes the issue. The following pseudocode would give a better picture on the next steps // Read replica specific implementation void StandbyWaitForTransactionCompletion(TransactionId xid) { // Register to receive WAL notifications about this transaction RegisterForWALNotification(xid);
| ||
▲ | anarazel 7 hours ago | parent [-] | |
This has absolutely nothing to do with the problem at hand. |