On Sun, May 31, 2020 at 7:25 PM Kyle Kingsbury <aphyr@jepsen.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