mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-12-21 08:29:39 +08:00
Don't wait for the commit record to be replicated if we wrote no WAL.
When using synchronous replication, we waited for the commit record to be replicated, but if we our transaction didn't write any other WAL records, that's not required because we don't even flush the WAL locally to disk in that case. This lead to long waits when committing a transaction that only modified a temporary table. Bug spotted by Thom Brown.
This commit is contained in:
parent
cf714c8108
commit
fe546f3da6
@ -1168,6 +1168,7 @@ RecordTransactionCommit(void)
|
||||
* Note that at this stage we have marked clog, but still show as running
|
||||
* in the procarray and continue to hold locks.
|
||||
*/
|
||||
if (wrote_xlog)
|
||||
SyncRepWaitForLSN(XactLastRecEnd);
|
||||
|
||||
/* Reset XactLastRecEnd until the next transaction writes something */
|
||||
|
Loading…
Reference in New Issue
Block a user