On Mar 25, 2011, at 9:52 AM, Merlin Moncure wrote:
> Without this bit, the only way to set hint bits going during bufmgr
> eviction is to do a visibility check on every tuple, which would
> probably be prohibitively expensive.  Since OLTP environments would
> rarely see this bit, they would not have to pay for the check.

IIRC one of the biggest costs is accessing the CLOG, but what if the 
bufmgr.c/bgwriter didn't use the same CLOG lookup mechanism as backends did? 
Unlike when a backend is inspecting visibility, it's not necessary for 
something like bgwriter to know exact visibility as long as it doesn't mark 
something as visible when it shouldn't. If it uses a different CLOG 
caching/accessing method that lags behind the real CLOG then the worst-case 
scenario is that there's a delay on setting hint bits. But getting grwiter to 
dothis would likely still be a huge win over forcing backends to worry about 
it. It's also possible that the visibility check itself could be simplified.

BTW, I don't think you want to play these games when a backend is evicting a 
page because you'll be slowing a real backend down.
--
Jim C. Nasby, Database Architect                   j...@nasby.net
512.569.9461 (cell)                         http://jim.nasby.net



-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to