Re: Potential G2-item cycles under serializable isolation

From: Peter Geoghegan <pg(at)bowt(dot)ie>
To: Kyle Kingsbury <aphyr(at)jepsen(dot)io>
Cc: PostgreSQL mailing lists <pgsql-bugs(at)lists(dot)postgresql(dot)org>
Subject: Re: Potential G2-item cycles under serializable isolation
Date: 2020-06-01 03:56:03
Message-ID: CAH2-Wzne1fr47aayESfDdfMvjiB+jSfW+xEWggdZuRYa8CL8Nw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

On Sun, May 31, 2020 at 8:37 PM Kyle Kingsbury <aphyr(at)jepsen(dot)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

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Kyle Kingsbury 2020-06-01 04:05:19 Re: Potential G2-item cycles under serializable isolation
Previous Message Kyle Kingsbury 2020-06-01 03:37:37 Re: Potential G2-item cycles under serializable isolation