Re: speedup tidbitmap patch: cache page - Mailing list pgsql-hackers

From Teodor Sigaev
Subject Re: speedup tidbitmap patch: cache page
Date
Msg-id 549950FB.2050004@sigaev.ru
Whole thread Raw
In response to Re: speedup tidbitmap patch: cache page  (David Rowley <dgrowleyml@gmail.com>)
Responses Re: speedup tidbitmap patch: cache page  (David Rowley <dgrowleyml@gmail.com>)
List pgsql-hackers
>
> Oh, that makes sense. Though I wonder if you need to clear the caches at all
> when calling tbm_lossify(). Surely it never becomes un-lossified and plus, at
> least for lossy_page it would never be set to the current page anyway, it's
> either going to be set to InvalidBlockNumber, or some other previous page that
agree, fixed

> was lossy. I also can't quite see the need to set page to NULL. Surely doing
> this would just mean we'd have to lookup the page again once tbm_lossify() is
> called if the next loop happened to be the same page? I think this would only be
> needed if the hash lookup was going to return a new instance of the page after
> we've lossified it, which from what I can tell won't happen.

Page could become an invalid pointer, because during tbm_mark_page_lossy()
called from tbm_lossify() it could be freed.

> I've also attached some benchmark results using your original table from
> up-thread. It seems that the caching if the page was seen as lossy is not much
> of a help in this test case. Did you find another one where you saw some better
> gains?

All what I found is about 0.5%...  v3 contains your comments but it doesn't use
lossy_page cache.
--
Teodor Sigaev                                   E-mail: teodor@sigaev.ru
                                                    WWW: http://www.sigaev.ru/

Attachment

pgsql-hackers by date:

Previous
From: Heikki Linnakangas
Date:
Subject: Re: PATCH: adaptive ndistinct estimator v3 (WAS: Re: [PERFORM] Yet another abort-early plan disaster on 9.3)
Next
From: Stephen Frost
Date:
Subject: Re: Missing updates at few places for row level security