Re: Seq scans status update
От | Heikki Linnakangas |
---|---|
Тема | Re: Seq scans status update |
Дата | |
Msg-id | 465C6184.6020206@enterprisedb.com обсуждение исходный текст |
Ответ на | Re: Seq scans status update (Alvaro Herrera <alvherre@commandprompt.com>) |
Список | pgsql-patches |
Alvaro Herrera wrote: > Tom Lane wrote: >> Gregory Stark <stark@enterprisedb.com> writes: >>> Is there a reason UnpinBuffer has to be the one to increment the usage count >>> anyways? Why can't ReadBuffer handle incrementing the count and just trust >>> that it won't be decremented until the buffer is unpinned anyways? >> That's a good question. I think the idea was that if we hold a buffer >> pinned for awhile (long enough that the bgwriter's clock sweep passes >> over it one or more times), we want the usage count decrementing to >> start when we release the pin, not when we acquire it. But maybe that >> could be fixed if the clock sweep doesn't touch the usage_count of a >> pinned buffer. Which in fact it may not do already --- didn't look. > > It does -- in BgBufferSync the "all" scan calls SyncOneBuffer with > skip_pinned=false. The "lru" scan does skip pinned buffers. You're looking at the wrong place. StrategyGetBuffer drives the clock sweep, and it always decreases the usage_count, IOW it doesn't skip pinned buffers. SyncOneBuffer and BgBufferSync don't decrease the usage_count in any case. -- Heikki Linnakangas EnterpriseDB http://www.enterprisedb.com
В списке pgsql-patches по дате отправления: