On Fri, 6 Jul 2007, Tom Lane wrote:

The problem is that it'd be very hard to track how far ahead of the recycling sweep hand we are, because that number has to be measured in usage-count-zero pages. I see no good way to know how many of the pages we scanned before have been touched (and given nonzero usage counts) unless we rescan them.

`I've actually been working on how to address that specific problem without`

`expressly tracking the contents of the buffer cache. When the background`

`writer is called, it finds out how many buffers were allocated and how far`

`the sweep point moved since the last call. From that, you can calculate`

`how many buffers on average need to be scanned per allocation, which tells`

`you something about the recently encountered density of 0-usage count`

`buffers. My thought was to use that as an input to the computation for`

`how far ahead to stay.`

I've been doing moving averages for years and years, and I find that the multiplication approach works at least as well as explicitly storing the last K observations. It takes a lot less storage and arithmetic too.

`I was simplifying the description just to comment on the range for K; I`

`was using a multiplication approach for the computation.`

-- * Greg Smith [EMAIL PROTECTED] http://www.gregsmith.com Baltimore, MD ---------------------------(end of broadcast)--------------------------- TIP 6: explain analyze is your friend