Re: [HACKERS] Skip all-visible pages during second HeapScan of CIC - Mailing list pgsql-hackers

From Robert Haas
Subject Re: [HACKERS] Skip all-visible pages during second HeapScan of CIC
Date
Msg-id CA+TgmoZ_MRB8cyNYX9Qbg857eNcrgzRNvq=7XNbmym9FY3ZP8Q@mail.gmail.com
Whole thread Raw
In response to Re: [HACKERS] Skip all-visible pages during second HeapScan of CIC  (Andres Freund <andres@anarazel.de>)
Responses Re: [HACKERS] Skip all-visible pages during second HeapScan of CIC  (Pavan Deolasee <pavan.deolasee@gmail.com>)
Re: [HACKERS] Skip all-visible pages during second HeapScan of CIC  (Andres Freund <andres@anarazel.de>)
List pgsql-hackers
On Tue, Mar 7, 2017 at 9:12 PM, Andres Freund <andres@anarazel.de> wrote:
> On 2017-03-07 21:03:53 -0500, Robert Haas wrote:
>> On Tue, Mar 7, 2017 at 4:26 PM, Stephen Frost <sfrost@snowman.net> wrote:
>> > Right, that's what I thought he was getting at and my general thinking
>> > was that we would need a way to discover if a CIC is ongoing on the
>> > relation and therefore heap_page_prune(), or anything else, would know
>> > that it can't twiddle the bits in the VM due to the ongoing CIC.
>> > Perhaps a lock isn't the right answer there, but it would have to be
>> > some kind of cross-process communication that operates at a relation
>> > level..
>>
>> Well, I guess that's one option.  I lean toward the position already
>> taken by Andres and Peter, namely, that it's probably not a great idea
>> to pursue this optimization.  I'm not totally dead-set on that
>> position, but it doesn't seem likely that we can add material
>> synchronization overhead to heap_page_prune(), and I'd rather maintain
>> the option to set visibility map bits in more places in the future
>> than give up that opportunity by optimizing CIC now.  It's nice for
>> CIC to be fast, but setting all visible bits more aggressively sounds
>> nicer.
>
> Indeed.
>
> I wonder however, if careful snapshot managment couldn't solve this as
> well.  I have *not* thought a lot about this, but afaics we can easily
> prevent all-visible from being set in cases it'd bother us by having an
> "appropriate" xmin / registered snapshot.

Yeah, but that's a tax on the whole system.

-- 
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company



pgsql-hackers by date:

Previous
From: Robert Haas
Date:
Subject: Re: [HACKERS] adding an immutable variant of to_date
Next
From: Pavan Deolasee
Date:
Subject: Re: [HACKERS] Skip all-visible pages during second HeapScan of CIC