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?