]> granicus.if.org Git - postgresql/commit
Check interrupts during logical decoding more frequently.
authorAndres Freund <andres@anarazel.de>
Sun, 29 Jun 2014 15:08:04 +0000 (17:08 +0200)
committerAndres Freund <andres@anarazel.de>
Mon, 30 Jun 2014 08:49:39 +0000 (10:49 +0200)
commit1cbc9480106241aaa8db112331e93d0a265b6db0
tree9d0e1f4b4d9ca54835bfac2c3050d2e119b51d4d
parent1c6821be31f91ab92547a8ed4246762c8cefb1b3
Check interrupts during logical decoding more frequently.

When reading large amounts of preexisting WAL during logical decoding
using the SQL interface we possibly could fail to check interrupts in
due time. Similarly the same could happen on systems with a very high
WAL volume while creating a new logical replication slot, independent
of the used interface.

Previously these checks where only performed in xlogreader's read_page
callbacks, while waiting for new WAL to be produced. That's not
sufficient though, if there's never a need to wait.  Walsender's send
loop already contains a interrupt check.

Backpatch to 9.4 where the logical decoding feature was introduced.
src/backend/replication/logical/logical.c
src/backend/replication/logical/logicalfuncs.c