On Sun, May 22, 2011 at 9:54 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
>> If not, then how about jiggering things somehow so that only one
>> server process needs to run the hack? Perhaps it can drop the result
>> in a file or shared memory or something from which the remaining
>> backends can read it out without having to redo all that work?
>> Admittedly there is a synchronization problem there I'm not quite sure
>> how to solve.
>
> Well, the main point in my mind is that the process is so damn expensive
> that we don't want to run it at all, ever, if we can avoid it.
>
> We could imagine launching a postmaster child to compute the result,
> as you suggest. And it would work 99.9% of the time, because probably
> nobody would remove the setting from postgresql.conf within a few
> seconds of having started the postmaster. But also, 99.999% of the time
> it would be completely wasted effort because the DBA wouldn't remove the
> postgresql.conf setting at all, ever.
Well, by that argument, we ought not to worry about masterminding what
happens if the DBA does do such a thing -- just run the whole process
and damn the torpedoes. If it causes a brief database stall, at least
they'll get the correct behavior.
--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company