Re: [DOC] Document concurrent index builds waiting on each other - Mailing list pgsql-hackers

From Andres Freund
Subject Re: [DOC] Document concurrent index builds waiting on each other
Date
Msg-id 20200325195841.gq4hpl25t6pxv3gl@alap3.anarazel.de
Whole thread Raw
In response to Re: [DOC] Document concurrent index builds waiting on each other  (Alvaro Herrera <alvherre@2ndquadrant.com>)
Responses Re: [DOC] Document concurrent index builds waiting on each other  (Alvaro Herrera <alvherre@2ndquadrant.com>)
Re: [DOC] Document concurrent index builds waiting on each other  (James Coleman <jtc331@gmail.com>)
Re: [DOC] Document concurrent index builds waiting on each other  (Alvaro Herrera <alvherre@2ndquadrant.com>)
List pgsql-hackers
Hi,

On 2020-03-25 16:30:10 -0300, Alvaro Herrera wrote:
> I posted this in November
> https://postgr.es/m/20191101203310.GA12239@alvherre.pgsql but I didn't
> put time to go through the issues there.

Oh, missed that.


> I don't know if my approach is exactly what Andres has in mind

Not quite. I don't think it's generally correct for CIC to set
PROC_IN_VACUUM. I'm doubtful it's the case even just for plain indexes -
we don't want rows to be pruned away from under us. I also think we'd
want to set such a flag during all of the CIC phases?

What I was thinking of was a new flag, with a distinct value from
PROC_IN_VACUUM. It'd currently just be specified in the
GetCurrentVirtualXIDs() calls in WaitForOlderSnapshots(). That'd avoid
needing to wait for other CICs on different relations. Since CIC is not
permitted on system tables, and CIC doesn't do DML on normal tables, it
seems fairly obviously correct to exclude other CICs.

Greetings,

Andres Freund



pgsql-hackers by date:

Previous
From: Andres Freund
Date:
Subject: Re: [DOC] Document concurrent index builds waiting on each other
Next
From: Alvaro Herrera
Date:
Subject: Re: [DOC] Document concurrent index builds waiting on each other