Re: Potential G2-item cycles under serializable isolation

Peter Geoghegan <pg@bowt.ie>

From: Peter Geoghegan <pg@bowt.ie>
To: Kyle Kingsbury <aphyr@jepsen.io>
Cc: PostgreSQL mailing lists <pgsql-bugs@lists.postgresql.org>
Date: 2020-06-08T02:59:09Z
Lists: pgsql-bugs
On Sun, Jun 7, 2020 at 7:54 PM Peter Geoghegan <pg@bowt.ie> wrote:
> In the example RR log that I posted the other day, the update + abort
> transaction was here (jepsen process 39/xid 1680826):
>
> [rr 316505 584863]
> 1591388175.991-316505-7/407-1680826-SELECT-5edaa7f9.4d459-jepsen
> process 39 LOG:  execute <unnamed>: select (val) from txn0 where id =
> $1
>  1591388175.991-316505-7/407-1680826-SELECT-5edaa7f9.4d459-jepsen
> process 39 DETAIL:  parameters: $1 = '1470'
> [rr 316505 584881]
> 1591388175.992-316505-7/0-1680826-ROLLBACK-5edaa7f9.4d459-jepsen
> process 39 LOG:  execute <unnamed>: ROLLBACK

I mean in the case of the G2-Item that Kyle chose to focus on
yesterday specifically --  G2-item #0 from the log_rr_recording.log
execution.

-- 
Peter Geoghegan



Commits

  1. Doc: Add references for SI and SSI.

  2. Improve comments for [Heap]CheckForSerializableConflictOut().

  3. Avoid update conflict out serialization anomalies.

  4. Implement genuine serializable isolation level.