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-01T03:56:03Z
Lists: pgsql-bugs
On Sun, May 31, 2020 at 8:37 PM Kyle Kingsbury <aphyr@jepsen.io> wrote: > This looks so weird that I assume I've *got* to be doing it wrong, but trawling > through the source code and pcap trace, I can't see where the mistake is. Maybe > I'll have fresher eyes in the morning. :) READ COMMITTED starts each command within a transaction with its own snapshot, much like Oracle: https://www.postgresql.org/docs/devel/transaction-iso.html There cannot be serialization errors with READ COMMITTED mode, and in general it is a lot more permissive. Probably to the point where it isn't sensible to test with Jepsen at all. It would make sense for you to test REPEATABLE READ isolation level separately, though. It implements snapshot isolation without the added overhead of the mechanisms that prevent (or are supposed to prevent) serialization anomalies. -- Peter Geoghegan
Commits
-
Doc: Add references for SI and SSI.
- 4c897197d793 9.5.23 landed
- 7295ac9c6c71 9.6.19 landed
- e2aca0d02d97 10.14 landed
- 648e56d3984d 11.9 landed
- eb1286413c0a 12.4 landed
- 4701efa9f741 13.0 landed
- 1575fbf1ac3c 14.0 landed
-
Improve comments for [Heap]CheckForSerializableConflictOut().
- 44eff2841059 13.0 landed
- 7aa4fb592530 14.0 landed
-
Avoid update conflict out serialization anomalies.
- 5940ffb22131 14.0 landed
- 6df7105e5d50 13.0 landed
- e620a38c23b9 12.4 landed
- dd616f2ec1c5 11.9 landed
- 19a6e1bc3083 10.14 landed
- e81dc2b7e2c4 9.6.19 landed
- c05f6b354ffe 9.5.23 landed
-
Implement genuine serializable isolation level.
- dafaa3efb75c 9.1.0 cited