Thread: Re: [COMMITTERS] pgsql: Make large sequential scans and VACUUMs work in a limited-size

Tom Lane wrote:
> Log Message:
> -----------
> Make large sequential scans and VACUUMs work in a limited-size "ring" of
> buffers, rather than blowing out the whole shared-buffer arena.  Aside from
> avoiding cache spoliation, this fixes the problem that VACUUM formerly tended
> to cause a WAL flush for every page it modified, because we had it hacked to
> use only a single buffer.  Those flushes will now occur only once per
> ring-ful.  The exact ring size, and the threshold for seqscans to switch into
> the ring usage pattern, remain under debate; but the infrastructure seems
> done.  The key bit of infrastructure is a new optional BufferAccessStrategy
> object that can be passed to ReadBuffer operations; this replaces the former
> StrategyHintVacuum API.

I think now is time to re-test the patch for advancing OldestXmin during
vacuum?

-- 
Alvaro Herrera                                http://www.CommandPrompt.com/
The PostgreSQL Company - Command Prompt, Inc.


Alvaro Herrera wrote:
> Tom Lane wrote:
>> Log Message:
>> -----------
>> Make large sequential scans and VACUUMs work in a limited-size "ring" of
>> buffers, rather than blowing out the whole shared-buffer arena.  Aside from
>> avoiding cache spoliation, this fixes the problem that VACUUM formerly tended
>> to cause a WAL flush for every page it modified, because we had it hacked to
>> use only a single buffer.  Those flushes will now occur only once per
>> ring-ful.  The exact ring size, and the threshold for seqscans to switch into
>> the ring usage pattern, remain under debate; but the infrastructure seems
>> done.  The key bit of infrastructure is a new optional BufferAccessStrategy
>> object that can be passed to ReadBuffer operations; this replaces the former
>> StrategyHintVacuum API.
> 
> I think now is time to re-test the patch for advancing OldestXmin during
> vacuum?

Thanks for the reminder, I'll schedule those tests.

--   Heikki Linnakangas  EnterpriseDB   http://www.enterprisedb.com