From: Dan Ports <drkp@csail.mit.edu>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>
Cc: Kevin Grittner <Kevin.Grittner@wicourts.gov>
Cc: pgsql-hackers@postgresql.org
Subject: Re: SSI atomic commit
Date: Thu, 7 Jul 2011 17:08:07 -0400
Message-ID: <20110707210807.GE76634@csail.mit.edu> (raw)
In-Reply-To: <2648.1310071735@sss.pgh.pa.us>
References: <4E12FDA8020000250003EFC1@gw.wicourts.gov>
<4E15D48A.7080203@enterprisedb.com>
<4E159B5C020000250003F063@gw.wicourts.gov>
<4E160005.1020300@enterprisedb.com>
<4E161881.6090800@enterprisedb.com>
<2648.1310071735@sss.pgh.pa.us>
On Thu, Jul 07, 2011 at 04:48:55PM -0400, Tom Lane wrote:
> Seems to me there's a more fundamental reason not to do that, which is
> that once you've done PREPARE it is no longer legitimate to decide to
> roll back the transaction to get out of a "dangerous" structure --- ie,
> you have to target one of the other xacts involved instead. Shouldn't
> the assignment of a prepareSeqNo correspond to the point where the xact
> is no longer a target for SSI rollback?
That part is already accomplished by setting SXACT_FLAG_PREPARED (and
choosing a new victim if we think we want to abort a transaction with
that flag set).
prepareSeqNo is being used as a lower bound on the transaction's commit
sequence number. It's currently set at the same time as the PREPARED
flag, but it doesn't have to be.
Dan
--
Dan R. K. Ports MIT CSAIL http://drkp.net/
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: pgsql-hackers@postgresql.org
Cc: drkp@csail.mit.edu, tgl@sss.pgh.pa.us, heikki.linnakangas@enterprisedb.com, Kevin.Grittner@wicourts.gov
Subject: Re: SSI atomic commit
In-Reply-To: <20110707210807.GE76634@csail.mit.edu>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox