Re: ATTACH/DETACH PARTITION CONCURRENTLY

From: Robert Haas <robertmhaas(at)gmail(dot)com>
To: Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>
Cc: PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: Re: ATTACH/DETACH PARTITION CONCURRENTLY
Date: 2019-02-28 20:27:59
Message-ID: CA+TgmoY13KQZF-=HNTrt9UYWYx3_oYOQpu9ioNT49jGgiDpUEA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Tue, Feb 26, 2019 at 5:10 PM Robert Haas <robertmhaas(at)gmail(dot)com> wrote:
> Aside from these problems, I think I have spotted a subtle problem in
> 0001. I'll think about that some more and post another update.

0001 turned out to be guarding against the wrong problem. It supposed
that if we didn't get a coherent view of the system catalogs due to
concurrent DDL, we could just AcceptInvalidationMessages() and retry.
But that turns out to be wrong, because there's a (very) narrow window
after a process removes itself from the ProcArray and before it sends
invalidation messages. It wasn't difficult to engineer an alternative
solution that works, but unfortunately it's only good enough to handle
the ATTACH case, so this is another thing that will need more thought
for concurrent DETACH. Anyway, the updated 0001 contains that code
and some explanatory comments. The rest of the series is
substantially unchanged.

I'm not currently aware of any remaining correctness issues with this
code, although certainly there may be some. There has been a certain
dearth of volunteers to review any of this. I do plan to poke at it a
bit to see whether it has any significant performance impact, but not
today.

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

Attachment Content-Type Size
v4-0004-Reduce-the-lock-level-required-to-attach-a-partit.patch application/octet-stream 817 bytes
v4-0002-Ensure-that-repeated-PartitionDesc-lookups-return.patch application/octet-stream 17.5 KB
v4-0001-Teach-RelationBuildPartitionDesc-to-cope-with-con.patch application/octet-stream 5.5 KB
v4-0003-Teach-runtime-partition-pruning-to-cope-with-conc.patch application/octet-stream 8.3 KB

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Dmitry Dolgov 2019-02-28 20:38:27 Re: Segfault when restoring -Fd dump on current HEAD
Previous Message Alvaro Herrera 2019-02-28 20:24:43 Re: Segfault when restoring -Fd dump on current HEAD