Re: Autonomous Transaction is back

From: Rajeev rastogi <rajeev(dot)rastogi(at)huawei(dot)com>
To: Robert Haas <robertmhaas(at)gmail(dot)com>, Craig Ringer <craig(at)2ndquadrant(dot)com>
Cc: PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>, Simon Riggs <simon(at)2ndquadrant(dot)com>
Subject: Re: Autonomous Transaction is back
Date: 2015-08-03 04:37:56
Message-ID: BF2827DCCE55594C8D7A8F7FFD3AB7715990EA8E@szxeml521-mbs.china.huawei.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On 31 July 2015 23:10, Robert Haas Wrote:
On Tue, Jul 28, 2015 at 6:01 AM, Craig Ringer <craig(at)2ndquadrant(dot)com> wrote:
>> That should be practical to special-case by maintaining a list of
>> parent transaction (virtual?) transaction IDs. Attempts to wait on a
>> lock held by any of those should fail immediately. There's no point
>> waiting for the deadlock detector since the outer tx can never
>> progress and commit/rollback to release locks, and it might not be
>> able to see the parent/child relationship from outside the backend
>> doing the nested tx anyway.

>I think we're going entirely down the wrong path here. Why is it ever useful for a backend's lock requests to conflict with themselves, even with autonomous transactions? That seems like an artifact of somebody else's implementation that we should be happy we don't need to copy.

IMHO, since most of the locking are managed at transaction level not backend level and we consider main & autonomous transaction to be independent transaction, then practically they may conflict right.
It is also right as you said that there is no as such useful use-cases where autonomous transaction conflicts with main (parent) transaction. But we cannot take it for granted as user might make a mistake. So at-least we should have some mechanism to handle this rare case, for which as of now I think throwing error from autonomous transaction as one of the solution. Once error thrown from autonomous transaction, main transaction may continue as it is (or abort main transaction also??).

Any other suggestion to handle this will be really helpful.

Thanks and Regards,
Kumar Rajeev Rastogi

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Michael Paquier 2015-08-03 05:15:27 Re: Doubt about AccessExclusiveLock in ALTER TABLE .. SET ( .. );
Previous Message Amit Kapila 2015-08-03 04:05:27 Re: Transactions involving multiple postgres foreign servers