On 10.06.2011 18:05, Kevin Grittner wrote:
Heikki Linnakangas<heikki.linnakan...@enterprisedb.com>  wrote:
* Is the SXACT_FLAG_ROLLED_BACK flag necessary? It's only set in
    ReleasePredicateLocks() for a fleeting moment while the
    function releases all conflicts and locks held by the
    transaction, and finally the sxact struct itself containing the
    flag.

I think that one can go away.  It  had more of a point many months
ago before we properly sorted out what belongs in
PreCommit_CheckForSerializationFailure() and what belongs in
ReleasePredicateLocks().  The point at which we reached clarity on
that and moved things around, this flag probably became obsolete.

    Also, isn't a transaction that's already been marked for death
    the same as one that has already rolled back, for the purposes
    of detecting conflicts?

Yes.

We should probably ignore any marked-for-death transaction during
conflict detection and serialization failure detection.  As a start,
anywhere there is now a check for rollback and not for this, we
should change it to this.

Ok, I removed the SXACT_FLAG_ROLLED_BACK flag. I also renamed the marked-for-death flag into SXACT_FLAG_DOOMED; that's a lot shorter.

There may be some places this can be
checked which haven't yet been identified and touched.

Yeah - in 9.2.

--
  Heikki Linnakangas
  EnterpriseDB   http://www.enterprisedb.com

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to