From: | Amit Kapila <amit(dot)kapila(at)huawei(dot)com> |
---|---|
To: | "'Atri Sharma'" <atri(dot)jiit(at)gmail(dot)com>, "'Pg Hackers'" <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: Page replacement algorithm in buffer cache |
Date: | 2013-03-22 05:58:19 |
Message-ID: | 006201ce26c2$41bd77d0$c5386770$@kapila@huawei.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Friday, March 22, 2013 10:22 AM Atri Sharma wrote:
> Hello all,
>
> Sorry if this is a naive question.
>
> I was going through Greg Smith's slides on buffer
> cache(http://www.westnet.com/~gsmith/content/postgresql/InsideBufferCac
> he.pdf).
> When going through the page replacement algorithm that we use i.e.
> clocksweep algorithm, I felt a potential problem in our current
> system.
>
> Specifically, when a new entry is allocated in the buffer, it's
> USAGE_COUNT is set to 1. On each sweep of the algorithm, the
> USAGE_COUNT is decremented and an entry whose USAGE_COUNT becomes
> zero is replaced.
Yes, it is replaced but in the next clock sweep pass, not immediately after
making 0.
So till the time of next pass if nobody accesses the buffer and all other
buffers have higher count, it can be replaced.
Also the buffer, it has returned for which the usage count becomes 1, it
will come to reduce the usage count only in next pass.
So in whole, I think it needs 2 passes for a freshly returned buffer to be
re-used incase no one uses it again.
With Regards,
Amit Kapila.
From | Date | Subject | |
---|---|---|---|
Next Message | Atri Sharma | 2013-03-22 06:30:02 | Re: Page replacement algorithm in buffer cache |
Previous Message | Tom Lane | 2013-03-22 04:58:05 | Re: Proposal for Allow postgresql.conf values to be changed via SQL [review] |