"Pavan Deolasee" <[EMAIL PROTECTED]> writes: > I am wondering whether seqscan would set the usage_count to 1 or to a higher > value. usage_count is incremented while unpinning the buffer. Even if > we use > page-at-a-time mode, won't the buffer itself would get pinned/unpinned > every time seqscan returns a tuple ? If thats the case, the overhead would > be O(BM_MAX_USAGE_COUNT * N) for every N reads.
No, it's only once per page. There's a good deal of PrivateRefCount thrashing that goes on while examining the individual tuples, but the shared state only changes when we leave the page, because we hold pin continuously on the current page of a seqscan. If you don't believe me, insert some debug printouts for yourself. > How about smaller value for BM_MAX_USAGE_COUNT ? This is not relevant to the problem: we are concerned about usage count 1 versus 0, not the other end of the range. regards, tom lane ---------------------------(end of broadcast)--------------------------- TIP 4: Have you searched our list archives? http://archives.postgresql.org