Re: 9.2.1 & index-only scans : abnormal heap fetches after VACUUM FULL
От | Bruce Momjian |
---|---|
Тема | Re: 9.2.1 & index-only scans : abnormal heap fetches after VACUUM FULL |
Дата | |
Msg-id | 20140216023415.GD3651@momjian.us обсуждение исходный текст |
Ответ на | Re: 9.2.1 & index-only scans : abnormal heap fetches after VACUUM FULL (Andres Freund <andres@2ndquadrant.com>) |
Ответы |
Re: 9.2.1 & index-only scans : abnormal heap fetches after
VACUUM FULL
|
Список | pgsql-hackers |
On Sat, Feb 15, 2014 at 07:08:40PM +0100, Andres Freund wrote: > > Can you be more specific about the cluster.c idea? I see > > copy_heap_data() in cluster.c calling HeapTupleSatisfiesVacuum() with a > > 'buf' just like the code I am working in. > > Yes, it does. But in contrast to your patch it does so on the *origin* > buffer. Which is in shared memory. > The idea would be to modify rewrite_heap_tuple() to get a new parameter > informing it it about the tuple's visibility. That'd allow you to avoid > doing any additional visibility checks. > > Unfortunately that would still not fix the problem that > visibilitymap_set requires a real buffer to be passed in. If you're > going that route, you'll need to make a bit more sweeping changes. You'd > need to add new blockno parameter and a BufferIsValid() check to the > right places in log_heap_visible(). Pretty ugly if you ask me... Thank you for the thorough review. Unless someone else can complete this, I think it should be marked as returned with feedback. I don't think I am going to learn enough to complete this during the commit-fest. Since learning of the limitations in setting vmmap bits for index-only scans in October, I have been unable to improve VACUUM/CLUSTER, and unable to improve autovacuum --- a double failure. I guess there is always PG 9.5. -- Bruce Momjian <bruce@momjian.us> http://momjian.us EnterpriseDB http://enterprisedb.com + Everyone has their own god. +
В списке pgsql-hackers по дате отправления: