On Wed, Dec 11, 2019 at 11:27 AM PG Doc comments form
<nore...@postgresql.org> wrote:
> Page: https://www.postgresql.org/docs/12/transaction-iso.html
> Description:
>
> Let's say I have two transactions running in Serializable isolation:
> T1: Reads a row
> T2: Reads the same row
> T1: Updates the row
> T1: Commits
> T2: Commits
>
> You will not get an error on the second commit. These appear to fit the
> description of concurrent transactions, and running one before the other
> would give different results in the reading of the row by T2, depending on
> which transaction was executed first. So how does this square with the docs
> that state "it monitors for conditions which could make execution of a
> concurrent set of serializable transactions behave in a manner inconsistent
> with all possible serial (one at a time) executions".

It only has to be consistent with *one* serial ordering of the
transactions to be allowed, not all serial orderings.  In this case,
the observed values and effects are consistent with T2 running before
T1.

> This seems quite misleading, but I understand there may just be an aspect of
> this that I am not understanding.

Do you think that wording could be improved?


Reply via email to