Re: Potential G2-item cycles under serializable isolation
Thomas Munro <thomas.munro@gmail.com>
From: Thomas Munro <thomas.munro@gmail.com>
To: Peter Geoghegan <pg@bowt.ie>
Cc: Andres Freund <andres@anarazel.de>, Kyle Kingsbury <aphyr@jepsen.io>, Kevin Grittner <kgrittn@gmail.com>, Jeff Davis <pgsql@j-davis.com>, PostgreSQL mailing lists <pgsql-bugs@lists.postgresql.org>
Date: 2020-06-15T01:30:27Z
Lists: pgsql-bugs
On Sun, Jun 14, 2020 at 6:37 AM Peter Geoghegan <pg@bowt.ie> wrote: > That seems reasonable to me. Thanks! > The doc patch says "some other systems may even offer Repeatable Read > and Snapshot Isolation as distinct isolation levels". This is true of > SQL Server, which has an explicit snapshot isolation level, though > possibly only because SI was retrofitted to SQL Server 2005 -- I guess > that that's what you have in mind. Perhaps you should reword this a > little to convey that you mean a separate isolation mode *and* an > actually-distinct set of behaviors to go with it. Ok, changed it to "distinct isolation levels with different behavior", and pushed this. I also made the biblio entries look more like the existing examples. > Speaking of comparing behaviors across systems, the behavior that > MySQL calls REPEATABLE READ mode is actually READ COMMITTED, while the By my reading of their manual, MySQL (assuming InnoDB) uses SI for REPEATABLE READ just like us, and it's also their default level. https://dev.mysql.com/doc/refman/8.0/en/innodb-consistent-read.html > behavior that DB2 calls REPEATABLE READ is actually SERIALIZABLE. The > range of guarantees that you actually get are *enormous* in reality! > ISTM that REPEATABLE READ is by far the most confusing and ambiguous > isolation level that the standard describes. I think IBM might even have changed that between System R and DB2, so there's probably an interesting story behind that.
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