Re: Potential G2-item cycles under serializable isolation
Kyle Kingsbury <aphyr@jepsen.io>
From: Kyle Kingsbury <aphyr@jepsen.io>
To: Thomas Munro <thomas.munro@gmail.com>
Cc: Peter Geoghegan <pg@bowt.ie>, Andres Freund <andres@anarazel.de>,
Kevin Grittner <kgrittn@gmail.com>, Jeff Davis <pgsql@j-davis.com>,
PostgreSQL mailing lists <pgsql-bugs@lists.postgresql.org>
Date: 2020-06-11T12:39:13Z
Lists: pgsql-bugs
On 6/11/20 1:40 AM, Thomas Munro wrote: > What do you think about this documentation update? I think this is really helpful! You can go a little further if you like. Right now, SSI vs serializable and SI vs RR are both described as "differences in behavior", which kinda leaves it unclear as to how those levels are related. If you want to follow Berenson, Adya, et al.'s broad interpretation, I'd say something like "Snapshot isolation prevents some anomalies, like phantoms, which repeatable read allows. It also allows some anomalies, like G2-item (write skew), which repeatable read prevents." ... and if you like, you could follow that with a discussion of how SI, thanks to ambiguity in the ANSI specification, could also be interpreted as stronger than RR. If you stick with the strict interpretation, I'd add a note here about how readers familiar with the SI literature might be confused, and that you're diverging from Berenson et al., but your position is defensible under the spec. "Serializable Snapshot Isolation is stronger than serializability: it allows only serializable histories--and prohibits some additional histories in addition." If you wanna talk about the performance rationale, that's valid too. :) --Kyle
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