Re: autovacuum launcher using InitPostgres - Mailing list pgsql-hackers

From Tom Lane
Subject Re: autovacuum launcher using InitPostgres
Date
Msg-id 19250.1251742072@sss.pgh.pa.us
Whole thread Raw
In response to Re: autovacuum launcher using InitPostgres  (Alvaro Herrera <alvherre@commandprompt.com>)
Responses Re: autovacuum launcher using InitPostgres  (Alvaro Herrera <alvherre@commandprompt.com>)
List pgsql-hackers
Alvaro Herrera <alvherre@commandprompt.com> writes:
> Tom Lane wrote:
>> While I was looking at this I wondered whether
>> RelationCacheInitializePhase2 really needs to be inside the startup
>> transaction at all.  I think it could probably be moved up before
>> that.  However, if the AV launcher has to do GetTransactionSnapshot
>> then it's not clear that improves matters anyway. 

> Well, the difference is that the initial transaction would be a few
> microsec shorter ... not sure if that matters.

Actually, there is a better way to do this: if we move up the
RelationCacheInitializePhase2 call, then we can have the AV launcher
case just fall out *before* the transaction start.  It can do
GetTransactionSnapshot inside its own transaction that reads
pg_database.  This is a better solution because it'll have a more
up-to-date version of RecentGlobalXmin while scanning pg_database.
(Indeed, I think this might be *necessary* over the very long haul.)

I think I've got the signal handling cleaned up, but need to test.
Is there any really good reason why autovacuum has its own avl_quickdie
instead of using quickdie() for SIGQUIT?
        regards, tom lane


pgsql-hackers by date:

Previous
From: Bruce Momjian
Date:
Subject: Re: 8.5 release timetable, again
Next
From: Robert Haas
Date:
Subject: Re: 8.5 release timetable, again