On Fri, 9 Mar 2007, ITAGAKI Takahiro wrote:
> "Pinned" means bufHdr->refcount > 0 and you don't distinguish pinned or
> recently-used (bufHdr->usage_count > 0) buffers in your patch.
Thank you, I will revise the terminology used accordingly. I was using
"pinned" as a shortcut for "will be ignored by skip_pinned" which was
sloppy of me. As I said, I was trying to show how the buffer cache looks
from the perspective of the background writer, and therefore lumping them
together because that's how SyncOneBuffer views them. A buffer cache full
of either type will be largely ignored by the LRU writer, and that's what
I've been finding when running insert/update heavy workloads like pgbench.
If I might suggest a terminology change to avoid this confusion in the
future, I'd like to rename the SyncOneBuffer "skip_pinned" parameter to
something like "skip_active", which is closer to the real behavior. I
know Oracle refers to these as "hot" and "cold" LRU entries.
--
* Greg Smith gsmith@gregsmith.com http://www.gregsmith.com Baltimore, MD