Re: Potential G2-item cycles under serializable isolation
Thomas Munro <thomas.munro@gmail.com>
From: Thomas Munro <thomas.munro@gmail.com>
To: Andres Freund <andres@anarazel.de>
Cc: Kyle Kingsbury <aphyr@jepsen.io>, Peter Geoghegan <pg@bowt.ie>,
Kevin Grittner <kgrittn@gmail.com>, Jeff Davis <pgsql@j-davis.com>, PostgreSQL mailing lists <pgsql-bugs@lists.postgresql.org>
Date: 2020-06-13T04:49:02Z
Lists: pgsql-bugs
Attachments
- v3-0001-Doc-Add-references-for-SI-and-SSI.patch (text/x-patch) patch v3-0001
On Fri, Jun 12, 2020 at 10:14 AM Thomas Munro <thomas.munro@gmail.com> wrote: > Here's a new attempt at that. Attached, but I'll also just include > the new paragraph here because it's short: Slightly improved version, bringing some wording into line with existing documentation. s/SQL Standard/SQL standard/, and explicitly referring to "locking" implementations of RR and Ser (as we do already a few paragraphs earlier, when discussing MVCC). My intention is to push this to all branches in a couple of days if there is no other feedback. I propose to treat it as a defect, because I agree that it's weird and surprising that we don't mention SI, especially considering the history of the standard levels. I mean, I guess it's basically implied by all the stuff that section says about MVCC vs traditional locking systems, and it's a super well known fact in our hacker community, but not using the standard term of art is a strange omission. In future release perhaps we could entertain ideas like accepting the name SNAPSHOT ISOLATION, and writing some more use-friendly guidance, and possibly even reference the Generalized Isolation Level Definitions stuff. I think it'd be a bad idea to stop accepting REPEATABLE READ and inconvenience our users, though; IMHO it's perfectly OK to stick with the current interpretation of the spec while also acknowledging flaws and newer thinking through this new paragraph.
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