On Mon, Jun 22, 2020 at 12:25 AM Peter J. Holzer <hjp-pgsql@xxxxxx> wrote: > I've read http://jepsen.io/analyses/postgresql-12.3 which reports a > problem in PostgreSQL's SERIALIZABLE isolation leven (which has since been > fixed) and also shows an example of a violation of what they consider to > be the correct definition of REPEATABLE READ. In response to that report, we added a paragraph to the manual to state explicitly that what we offer is snapshot isolation: https://git.postgresql.org/gitweb/?p=postgresql.git;a=commitdiff;h=1575fbf1ac3c8464b2dade245deff537a3aa2498 https://www.postgresql.org/docs/devel/transaction-iso.html#XACT-REPEATABLE-READ > Since those papers are now 25 and 20 years old, respectively, and there > have been several revisions of the SQL standard in the meantime, has the > SQL committee come around to that view (SQL/2003 seems unchanged, I > couldn't find a later revision online)? And if it has, did it follow > those definitions or come up with different ones (it seems to me that > G2-item is much stronger that warranted by the wording in the standard)? SQL:2016 is the latest, and I don't have it to hand right now, but SQL:2011 still defined four degrees of isolation in terms of the three phenomena (pages 133-135 of part II, "Foundations", at least in the draft copy you can find on the net). As for what else PostgreSQL should do about this historical confusion, I suspect that a patch to pgsql-hackers to accept the name SNAPSHOT ISOLATION as an alternative would be popular, and we could probably even spin it as the "true" name of the level (while still accepting REPEATABLE READ; there is no point in breaking that), and maybe add a second table to the manual's Transaction Isolation section to cover the later formalisations in a digested user friendly format (if that is possible).