Wake WALSender to reduce data loss at failover for async commit.

WALSender now woken up after each background flush by WALwriter, avoiding
multi-second replication delay for an all-async commit workload.
Replication delay reduced from 7s with default settings to 200ms and often
much less, allowing significantly reduced data loss at failover.

Andres Freund and Simon Riggs
pull/3/head
Simon Riggs 14 years ago
parent b50991eedb
commit 2c8a4e9be2
  1. 7
      src/backend/access/transam/xlog.c

@ -2271,6 +2271,13 @@ XLogBackgroundFlush(void)
END_CRIT_SECTION();
/*
* If we wrote something then we have something to send to standbys also,
* otherwise the replication delay become around 7s with just async commit.
*/
if (wrote_something)
WalSndWakeup();
return wrote_something;
}

Loading…
Cancel
Save