Re: Extension Enhancement: Buffer Invalidation in pg_buffercache
От | Thomas Munro |
---|---|
Тема | Re: Extension Enhancement: Buffer Invalidation in pg_buffercache |
Дата | |
Msg-id | CA+hUKG+d=xL7=ekrxmirqVKgMFPWCbsGCM7UuARmMii7vK1Maw@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: Extension Enhancement: Buffer Invalidation in pg_buffercache (Thomas Munro <thomas.munro@gmail.com>) |
Ответы |
Re: Extension Enhancement: Buffer Invalidation in pg_buffercache
|
Список | pgsql-hackers |
On Tue, Apr 30, 2024 at 7:17 AM Thomas Munro <thomas.munro@gmail.com> wrote: > On Tue, Apr 30, 2024 at 6:47 AM Maksim Milyutin <milyutinma@gmail.com> wrote: > >> Should not we call at the end the StrategyFreeBuffer() function to add target buffer to freelist and not miss it afterinvalidation? > > > Please take a look at this issue, current implementation of EvictUnpinnedBuffer() IMO is erroneous - evicted buffersare lost permanently and will not be reused again I don't think that's true: it is not lost permanently, it'll be found by the regular clock hand. Perhaps it should be put on the freelist so it can be found again quickly, but I'm not sure that's a bug, is it? If it were true, even basic testing eg select count(pg_buffercache_evict(bufferid)) from pg_buffercache would leave the system non-functional, but it doesn't, the usual CLOCK algorithm just does its thing.
В списке pgsql-hackers по дате отправления: