Re: Nested transactions

From: Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us>
To: Alvaro Herrera <alvherre(at)dcc(dot)uchile(dot)cl>
Cc: Patches <pgsql-patches(at)postgresql(dot)org>
Subject: Re: Nested transactions
Date: 2004-06-10 04:11:26
Message-ID: 200406100411.i5A4BQL14526@candle.pha.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc pgsql-patches


Your patch has been added to the PostgreSQL unapplied patches list at:

http://momjian.postgresql.org/cgi-bin/pgpatches

I will try to apply it after review.

---------------------------------------------------------------------------
Alvaro Herrera wrote:
> Hackers,
>
> Here is the latest installment of the nested transactions patch.
>
> What's in the current patch:
>
> - transaction block support. The user can start subtransactions inside
> each transaction block and rollback each one independently. The
> nesting level has no practical limit, though each transaction tree can
> have at most 2^32 commands (subtransaction start counts as one
> command).
>
> - Most subsystems have a cleanup function called at subtransaction
> abort: deferred triggers, relcache refcount, catcache refcount, smgr
> pending deletes, gist/rtree/hash scan lists, bufmgr refcount,
> on-commit actions.
>
> - SPI closes connections opened during the aborting subtransaction.
>
> - The lock manager releases locks taken by the aborting subtransaction,
> but _holds_ locks taken by a committing subtransaction. This is
> needed by MVCC semantics.
>
> - A special memory context, CommitContext is created for each
> subtransaction. It is destroyed if the subtransaction aborts, but
> if it commits then it will be kept until main transaction commit
> (or its parent subtransaction aborts).
>
> - The pg_subtrans module is created to keep the parent Xid of each
> subtransaction. It's similar (and based on) the pg_clog code.
>
> - The pg_clog Xlog code was moved to Slru and merged with pg_subtrans
> Xlog code.
>
> - When we wait for a transaction to finish (XactLockTableWait), we
> actually wait for the topmost transaction.
>
> - SET TRANSACTION ISOLATION LEVEL and SET READ ONLY are not allowed
> inside a subtransaction.
>
> What's missing to complete the nested transactions work:
>
> - Make GUC vars work correctly.
> - Lots of testing.
> - Documentation
> - Optimizations:
> * the phantom Xid idea is not implemented here.
> * optimize TransactionIdIsInProgress
> * profile
> - More regression testing. Need additional concurrent infrastructure.
>
> Many thanks to:
>
> - Manfred Koizar for making the pg_subtrans code possible and discussion
> on several issues.
> - Stephan Szabo for the idea on which the deferred trigger code was
> based.
> - Tom Lane for asking the right questions.
> - Bruce Momjian for useful ideas.
>
>
> IMHO this patch should be reviewed and applied to achieve wide testing
> as soon as possible before feature freeze. More changes can be applied
> later as available/needed. (The patch is already huge and contains
> several important changes that need careful review. Adding more to the
> mix will only make things more difficult.)
>
> --
> Alvaro Herrera (<alvherre[a]dcc.uchile.cl>)
> "No single strategy is always right (Unless the boss says so)"
> (Larry Wall)

[ Attachment, skipping... ]

>
> ---------------------------(end of broadcast)---------------------------
> TIP 1: subscribe and unsubscribe commands go to majordomo(at)postgresql(dot)org

--
Bruce Momjian | http://candle.pha.pa.us
pgman(at)candle(dot)pha(dot)pa(dot)us | (610) 359-1001
+ If your life is a hard drive, | 13 Roberts Road
+ Christ can be your backup. | Newtown Square, Pennsylvania 19073

In response to

Browse pgsql-jdbc by date

  From Date Subject
Next Message Dave Cramer 2004-06-10 16:36:02 Re: [JDBC] Trouble with locking tables - reg.
Previous Message Shanmugasundaram Doraisamy 2004-06-10 03:39:37 Trouble with locking tables - reg.

Browse pgsql-patches by date

  From Date Subject
Next Message Serguei Mokhov 2004-06-10 04:45:20 Re: Fully enabling NLS in pg_ctl
Previous Message Bruce Momjian 2004-06-10 04:11:09 Re: [PATCHES] serverlog function (log_destination file)