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

From Andres Freund
Subject Re: [HACKERS] Skip all-visible pages during second HeapScan of CIC
Date
Msg-id 20170303231932.eabqyedt6att2xfy@alap3.anarazel.de
Whole thread Raw
In response to Re: [HACKERS] Skip all-visible pages during second HeapScan of CIC  (Peter Geoghegan <pg@bowt.ie>)
List pgsql-hackers
On 2017-03-03 15:12:04 -0800, Peter Geoghegan wrote:
> On Tue, Feb 28, 2017 at 5:42 AM, Pavan Deolasee
> <pavan.deolasee@gmail.com> wrote:
> > During the second heap scan of CREATE INDEX CONCURRENTLY, we're only
> > interested in the tuples which were inserted after the first scan was
> > started. All such tuples can only exists in pages which have their VM bit
> > unset. So I propose the attached patch which consults VM during second scan
> > and skip all-visible pages. We do the same trick of skipping pages only if
> > certain threshold of pages can be skipped to ensure OS's read-ahead is not
> > disturbed.
> 
> BTW, is there any danger of VACUUM acquiring a lock on the heap
> relation (i.e. vacuuming it) after the first CIC transaction ends, but
> before the second CIC transaction begins?

We hold session level locks to prevent such danger.



pgsql-hackers by date:

Previous
From: Peter Geoghegan
Date:
Subject: Re: [HACKERS] Skip all-visible pages during second HeapScan of CIC
Next
From: Tom Lane
Date:
Subject: Re: [HACKERS] [COMMITTERS] pgsql: Use asynchronous connect API in libpqwalreceiver