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-04 02:15:24 |
Message-ID: | CAH2-WznDnzcv3meSoQQg0UimBoEohCDy6Leu3eh8e5i0ijcqig@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs |
On Sun, May 31, 2020 at 7:25 PM Kyle Kingsbury <aphyr(at)jepsen(dot)io> wrote:
> Which typically produces, after about a minute, anomalies like the following:
>
> G2-item #1
> Let:
> T1 = {:type :ok, :f :txn, :value [[:r 7 [1]] [:append 12 1]], :time 95024280,
> :process 5, :index 50}
> T2 = {:type :ok, :f :txn, :value [[:append 7 2] [:r 14 nil] [:append 14 1]
> [:r 12 nil]], :time 98700211, :process 6, :index 70}
>
> Then:
> - T1 < T2, because T1 did not observe T2's append of 2 to 7.
> - However, T2 < T1, because T2 observed the initial (nil) state of 12, which
> T1 created by appending 1: a contradiction!
Is the format of these anomalies documented somewhere? How can I
determine what SQL each transaction generates from these values? It's
not obvious to me which of the three tables (which of txn0, txn1, and
txn2) are affected in each case.
--
Peter Geoghegan
From | Date | Subject | |
---|---|---|---|
Next Message | PG Bug reporting form | 2020-06-04 05:02:56 | BUG #16477: Unable to edit and delete for certain row manually using db beaver |
Previous Message | Peter Geoghegan | 2020-06-04 01:33:45 | Re: Potential G2-item cycles under serializable isolation |