Re: WalSndWakeup() and synchronous_commit=off
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Robert Haas <robertmhaas@gmail.com>
Cc: Fujii Masao <masao.fujii@gmail.com>, Andres Freund <andres@2ndquadrant.com>, pgsql-hackers@postgresql.org
Date: 2012-05-11T18:36:24Z
Lists: pgsql-hackers
Robert Haas <robertmhaas@gmail.com> writes: > That definitely doesn't seem ideal - a lot of things can pile up > behind WALWriteLock. I'm not sure how big a problem it would be in > practice, but we generally make a practice of avoiding sending signals > while holding LWLocks whenever possible... There's a good reason for that, which is that the scheduler might well decide to go run the wakened process instead of you. Admittedly this tends to not be a problem on machines with $bignum CPUs, but on single-CPU machines I've seen it happen a lot. Refactoring so that the signal is sent only after lock release seems like a good idea to me. regards, tom lane