Re: ALTER TABLE .. DETACH PARTITION CONCURRENTLY

From: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
To: Andy Fan <zhihui(dot)fan1213(at)gmail(dot)com>
Cc: Pg Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: Re: ALTER TABLE .. DETACH PARTITION CONCURRENTLY
Date: 2020-10-15 01:08:40
Message-ID: 20201015010840.GA20821@alvherre.pgsql
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On 2020-Oct-15, Andy Fan wrote:

> I think if it is possible to implement the detech with a NoWait option .
>
> ALTER TABLE ... DETACH PARTITION .. [NoWait].
>
> if it can't get the lock, raise "Resource is Busy" immediately,
> without blocking others. this should be a default behavior. If
> people do want to keep trying, it can set a ddl_lock_timeout to
> 'some-interval', in this case, it will still block others(so it can't
> be as good as what you are doing, but very simple), however the user
> would know what would happen exactly and can coordinate with their
> application accordingly. I'm sorry about this since it is a bit of
> off-topics or it has been discussed already.

Hi. I don't think this has been discussed, but it doesn't really solve
the use case I want to -- in many cases where the tables are
continuously busy, this would lead to starvation. I think the proposal
to make the algorithm work with reduced lock level is much more useful.

I think you can already do NOWAIT behavior, with LOCK TABLE .. NOWAIT
followed by DETACH PARTITION, perhaps with a nonzero statement timeout.

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message David Rowley 2020-10-15 01:09:11 Re: ALTER TABLE .. DETACH PARTITION CONCURRENTLY
Previous Message Andy Fan 2020-10-15 01:04:24 Re: ALTER TABLE .. DETACH PARTITION CONCURRENTLY