Re: Serializable description seems misleading?

From: Thomas Munro <thomas(dot)munro(at)gmail(dot)com>
To: ajantha_perera(at)yahoo(dot)com, pgsql-docs(at)lists(dot)postgresql(dot)org
Subject: Re: Serializable description seems misleading?
Date: 2019-12-11 04:06:33
Message-ID: CA+hUKGJn8836OBzBgYYJ9yuy0C=2WcFrz1BuEJPUesU-6qvbwg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-docs

On Wed, Dec 11, 2019 at 11:27 AM PG Doc comments form
<noreply(at)postgresql(dot)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?

In response to

Browse pgsql-docs by date

  From Date Subject
Next Message Devrim Gündüz 2019-12-11 11:53:19 Re: I suggest improving install steps for CentOS 8
Previous Message Yasuhiro Horimoto 2019-12-11 00:40:26 Re: I suggest improving install steps for CentOS 8