Re: SSI patch version 14 - Mailing list pgsql-hackers

From Jeff Davis
Subject Re: SSI patch version 14
Date
Msg-id 1296148703.11513.451.camel@jdavis
Whole thread Raw
In response to Re: SSI patch version 14  (Dan Ports <drkp@csail.mit.edu>)
Responses Re: SSI patch version 14
Re: SSI patch version 14
List pgsql-hackers
On Tue, 2011-01-25 at 05:57 -0500, Dan Ports wrote:
> This summary is right on. I would add one additional detail or
> clarification to the last point, which is that rather than checking for
> a cycle, we're checking for a transaction with both "in" and "out"
> conflicts, which every cycle must contain.

To clarify, this means that it will get some false positives, right?

For instance:

T1: get snapshot

T2: get snapshot insert R1 commit

T1: read R1 write R2

T3: get snapshot read R2

T3: commit

T1: commit -- throws error


T1 has a conflict out to T2, and T1 has a conflict in from T3.
T2 has a conflict in from T1.
T3 has a conflict out to T1.

T1 is canceled because it has both a conflict in and a conflict out. But
the results are the same as a serial order of execution: T3, T1, T2.

Is there a reason we can't check for a real cycle, which would let T1
succeed?

Regards,Jeff Davis



pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Upcoming back-branch updates
Next
From: Greg Smith
Date:
Subject: Re: Spread checkpoint sync