From: | Alvaro Herrera <alvherre(at)2ndquadrant(dot)com> |
---|---|
To: | Robert Haas <robertmhaas(at)gmail(dot)com> |
Cc: | Simon Riggs <simon(at)2ndquadrant(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org> |
Subject: | Re: ATTACH/DETACH PARTITION CONCURRENTLY |
Date: | 2018-11-06 19:10:51 |
Message-ID: | 20181106191051.22ctgafeiam44oqv@alvherre.pgsql |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On 2018-Nov-06, Robert Haas wrote:
> If you don't throw an error when a partition is concurrently detached
> and then someone routes a tuple to that portion of the key space, what
> DO you do? Continue inserting tuples into the table even though it's
> no longer a partition?
Yes -- the table was a partition when the query started, so it's still
a partition from the point of view of that query's snapshot.
> Throw tuples destined for that partition away?
Surely not. (/me doesn't beat straw men anyway.)
> You can make an argument for both of those behaviors, but they're
> both pretty strange. The first one means that for an arbitrarily long
> period of time after detaching a partition, the partition may continue
> to receive inserts that were destined for its former parent.
Not arbitrarily long -- only as long as those old snapshots live. I
don't find this at all surprising.
(I think DETACH is not related to DROP in any way. My proposal is that
DETACH can work concurrently, and if people want to drop the partition
later they can wait until snapshots/queries that could see that
partition are gone.)
--
Álvaro Herrera https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
From | Date | Subject | |
---|---|---|---|
Next Message | Robert Haas | 2018-11-06 19:27:17 | Re: ATTACH/DETACH PARTITION CONCURRENTLY |
Previous Message | Jonah H. Harris | 2018-11-06 19:07:02 | Re: Disallow setting client_min_messages > ERROR? |