Re: WalSndWakeup() and synchronous_commit=off
Andres Freund <andres@2ndquadrant.com>
From: Andres Freund <andres@2ndquadrant.com>
To: pgsql-hackers@postgresql.org
Date: 2012-05-11T18:40:40Z
Lists: pgsql-hackers
On Friday, May 11, 2012 08:36:24 PM Tom Lane wrote: > 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. Will send a patch lateron, duplication seems to be manageable. Andres