On 06.06.2013 17:00, Heikki Linnakangas wrote:
A more workable idea is to sprinkle checks in higher-level code, before you hold any critical locks, to check that there is enough preallocated WAL. Like, at the beginning of heap_insert, heap_update, etc., and all similar indexam entry points.
Actually, there's one place that catches most of these: LockBuffer(..., BUFFER_LOCK_EXCLUSIVE). In all heap and index operations, you always grab an exclusive lock on a page first, before entering the critical section where you call XLogInsert.
That leaves a few miscellaneous XLogInsert calls that need to be guarded, but it leaves a lot less room for bugs of omission, and keeps the code cleaner.
- Heikki -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers