Re: Visibility map, partial vacuums - Mailing list pgsql-hackers

From Tom Lane
Subject Re: Visibility map, partial vacuums
Date
Msg-id 5856.1227705135@sss.pgh.pa.us
Whole thread Raw
In response to Re: Visibility map, partial vacuums  (Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>)
Responses Re: Visibility map, partial vacuums  (Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>)
Re: Visibility map, partial vacuums  (Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>)
List pgsql-hackers
Heikki Linnakangas <heikki.linnakangas@enterprisedb.com> writes:
> There is another problem, though, if the map is frequently probed for 
> pages that don't exist in the map, or the map doesn't exist at all. 
> Currently, the size of the map file is kept in relcache, in the 
> rd_vm_nblocks_cache variable. Whenever a page is accessed that's > 
> rd_vm_nblocks_cache, smgrnblocks is called to see if the page exists, 
> and rd_vm_nblocks_cache is updated. That means that every probe to a 
> non-existing page causes an lseek(), which isn't free.

Well, considering how seldom new pages will be added to the visibility
map, it seems to me we could afford to send out a relcache inval event
when that happens.  Then rd_vm_nblocks_cache could be treated as
trustworthy.

Maybe it'd be worth doing that for the FSM too.  The frequency of
invals would be higher, but then again the reference frequency is
probably higher too?
        regards, tom lane


pgsql-hackers by date:

Previous
From: "Rob Kirkbride"
Date:
Subject: Re: Enhancement to pg_dump
Next
From: Tom Lane
Date:
Subject: Re: Brittleness in regression test setup