Re: Bug: Buffer cache is not scan resistant
| От | Tom Lane |
|---|---|
| Тема | Re: Bug: Buffer cache is not scan resistant |
| Дата | |
| Msg-id | 22773.1173130599@sss.pgh.pa.us обсуждение исходный текст |
| Ответ на | Re: Bug: Buffer cache is not scan resistant (Mark Kirkwood <markir@paradise.net.nz>) |
| Ответы |
Re: Bug: Buffer cache is not scan resistant
|
| Список | pgsql-hackers |
Mark Kirkwood <markir@paradise.net.nz> writes:
> Tom Lane wrote:
>> Mark, can you detect "hiccups" in the read rate using
>> your setup?
> I think so, here's the vmstat output for 400MB of shared_buffers during
> the scan:
Hm, not really a smoking gun there. But just for grins, would you try
this patch and see if the numbers change?
regards, tom lane
*** src/backend/storage/buffer/freelist.c.orig Fri Jan 5 18:02:12 2007
--- src/backend/storage/buffer/freelist.c Mon Mar 5 16:33:11 2007
***************
*** 104,116 ****
* it; decrement the usage_count and keep scanning.
*/
LockBufHdr(buf);
- if (buf->refcount == 0 && buf->usage_count == 0)
- return buf;
if (buf->usage_count > 0)
{
buf->usage_count--;
! trycounter = NBuffers;
}
else if (--trycounter == 0)
{
/*
--- 104,116 ----
* it; decrement the usage_count and keep scanning.
*/
LockBufHdr(buf);
if (buf->usage_count > 0)
{
buf->usage_count--;
! trycounter = NBuffers + 1;
}
+ if (buf->refcount == 0 && buf->usage_count == 0)
+ return buf;
else if (--trycounter == 0)
{
/*
В списке pgsql-hackers по дате отправления: