Re: autovacuum truncate exclusive lock round two

Поиск
Список
Период
Сортировка
От Jan Wieck
Тема Re: autovacuum truncate exclusive lock round two
Дата
Msg-id 50894552.4060804@Yahoo.com
обсуждение исходный текст
Ответ на Re: autovacuum truncate exclusive lock round two  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-hackers
On 10/25/2012 9:45 AM, Tom Lane wrote:
> Jan Wieck <JanWieck@Yahoo.com> writes:
>> On 10/24/2012 10:46 PM, Stephen Frost wrote:
>>> Would it be possible to use the FSM to figure out if things have changed
>>> since the last scan..?  Does that scan update the FSM, which would then
>>> be updated by another backend in the event that it decided to write
>>> something there?  Or do we consider the FSM to be completely
>>> untrustworthy wrt this (and if so, I don't suppose there's any hope to
>>> using the visibility map...)?
>
>> I honestly don't know if we can trust the FSM enough when it comes to
>> throwing away heap pages. Can we?
>
> No.  Backends are under no obligation to update FSM for each individual
> tuple insertion, and typically don't do so.
>
> More to the point, you have to take AccessExclusiveLock *anyway*,
> because this is interlocking not only against new insertions but plain
> read-only seqscans: if a seqscan falls off the end of the table it will
> be very unhappy.  So I don't see where we'd buy anything by consulting
> the FSM.

Thank you.

One thing that I haven't mentioned yet is that with this patch, we could 
actually insert a vacuum_delay_point() into the loop in 
count_nondeletable_pages(). We no longer cling to the exclusive lock but 
rather get out of the way as soon as somebody needs the table. Under 
this condition we no longer need to do the second scan full bore.


Jan

-- 
Anyone who trades liberty for security deserves neither
liberty nor security. -- Benjamin Franklin



В списке pgsql-hackers по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: unfixed bugs with extensions
Следующее
От: Stephen Frost
Дата:
Сообщение: Re: autovacuum truncate exclusive lock round two