Re: Incomplete freezing when truncating a relation during vacuum
От | Heikki Linnakangas |
---|---|
Тема | Re: Incomplete freezing when truncating a relation during vacuum |
Дата | |
Msg-id | 5295E965.8020009@vmware.com обсуждение исходный текст |
Ответ на | Re: Incomplete freezing when truncating a relation during vacuum (Andres Freund <andres@2ndquadrant.com>) |
Ответы |
Re: Incomplete freezing when truncating a relation during
vacuum
|
Список | pgsql-hackers |
On 11/27/13 14:11, Andres Freund wrote: > On 2013-11-27 13:56:58 +0200, Heikki Linnakangas wrote: >>> Afaics the likelihood of the issue occuring on non-all-visible pages is >>> pretty low, since they'd need to be skipped due to lock contention >>> repeatedly. > >> Hmm. If a page has its visibility-map flag set, but contains a tuple that >> appears to be dead because you've wrapped around, vacuum will give a >> warning: "page containing dead tuples is marked as all-visible in relation >> \"%s\" page %u". > > I don't think this warning is likely to be hit as the code stands - > heap_page_prune() et. al. will have removed all dead tuples already, > right and so has_dead_tuples won't be set. It might be a good idea to add such a warning to heap_page_prune(). Or also emit the warning in lazy_scan_heap() if heap_page_prune() returned > 0. > Independent from this, ISTM we should add a > else if (PageIsAllVisible(page) && all_visible) > to those checks. Can you elaborate, where should that be added? - Heikki
В списке pgsql-hackers по дате отправления: