]> granicus.if.org Git - postgresql/commit
Now that START_REPLICATION returns the next timeline's ID after reaching end
authorHeikki Linnakangas <heikki.linnakangas@iki.fi>
Fri, 18 Jan 2013 09:48:29 +0000 (11:48 +0200)
committerHeikki Linnakangas <heikki.linnakangas@iki.fi>
Fri, 18 Jan 2013 09:59:34 +0000 (11:59 +0200)
commit6f7cddc7ae27a42ac2af72b675b9c08138a0c439
treea4963727613f09a93f18ed84469fdd4999af2f31
parent2ff65553131d8ad2ddbbfe298fffc378f127b15e
Now that START_REPLICATION returns the next timeline's ID after reaching end
of timeline, take advantage of that in walreceiver.

Startup process is still in control of choosign the target timeline, by
scanning the timeline history files present in pg_xlog, but walreceiver now
uses the next timeline's ID to fetch its history file immediately after it
has finished streaming the old timeline. Before, the standby would first try
to restart streaming on the old timeline, which fetches the missing timeline
history file as a side-effect, and only then restart from the new timeline.
This patch eliminates the extra iteration, which speeds up the timeline
switch and reduces the noise in the log caused by the extra restart on the
old timeline.
src/backend/replication/libpqwalreceiver/libpqwalreceiver.c
src/backend/replication/walreceiver.c
src/include/replication/walreceiver.h