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 20200325191935.jjhdg2zy5k7ath5v@alap3.anarazel.de
Whole thread Raw
In response to [DOC] Document concurrent index builds waiting on each other  (James Coleman <jtc331@gmail.com>)
Responses Re: [DOC] Document concurrent index builds waiting on each other  (James Coleman <jtc331@gmail.com>)
List pgsql-hackers
Hi,

On 2019-09-18 13:51:00 -0400, James Coleman wrote:
> In my experience it's not immediately obvious (even after reading the
> documentation) the implications of how concurrent index builds manage
> transactions with respect to multiple concurrent index builds in
> flight at the same time.
> 
> Specifically, as I understand multiple concurrent index builds running
> at the same time will all return at the same time as the longest
> running one.
> 
> I've attached a small patch to call this caveat out specifically in
> the documentation. I think the description in the patch is accurate,
> but please let me know if there's some intricacies around how the
> various stages might change the results.
> 
> James Coleman

I'd much rather see effort spent fixing this issue as far as it relates
to concurrent CICs. For the snapshot waits we can add a procarray flag
(alongside PROCARRAY_VACUUM_FLAG) indicating that the backend is
doing. Which WaitForOlderSnapshots() can then use to ignore those CICs,
which is safe, because those transactions definitely don't insert into
relations targeted by CIC. The change to WaitForOlderSnapshots() would
just be to pass the new flag to GetCurrentVirtualXIDs, I think.

Greetings,

Andres Freund



pgsql-hackers by date:

Previous
From: Pavel Stehule
Date:
Subject: Re: plan cache overhead on plpgsql expression
Next
From: James Coleman
Date:
Subject: Re: [DOC] Document concurrent index builds waiting on each other