Re: Confused by example in 13.2.2

From: Dmitry Igrishin <dmitigr(at)gmail(dot)com>
To: Kevin Grittner <kgrittn(at)ymail(dot)com>
Cc: pgsql-docs <pgsql-docs(at)postgresql(dot)org>
Subject: Re: Confused by example in 13.2.2
Date: 2015-08-03 10:45:05
Message-ID: CAAfz9KOi1r9G1oukFiYOZdLRjR8KrGzOG8DTxEzEXr+o+1+uhw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-docs

2015-08-03 4:35 GMT+03:00 Kevin Grittner <kgrittn(at)ymail(dot)com>:

> Dmitry Igrishin <dmitigr(at)gmail(dot)com> wrote:
>
> > I'm confused a bit by example in 13.2.2:
>
> In current docs that is the "Repeatable Read Isolation Level"
> section.
>
> > "For example, even a read only transaction at this level may see a
> > control record updated to show that a batch has been completed but
> > not see one of the detail records which is logically part of the batch
> > because it read an earlier revision of the control record."
> >
> > Could anyone clarify this example? And what is "control record"?
>
> Yeah, that sentence doesn't really have enough context. There was
> discussion around this example in the Wiki:
>
> https://wiki.postgresql.org/wiki/SSI#Deposit_Report

Thank you for the link!

>
>
> ... and with that fresh in everyone's memory it seemed to make
> sense at the time. Would this change make it clear to you?:
>
> "For example, you might have a workload involving batches, with a
> control table having a record to describe the state of each batch
> and another table with the detail; a read only transaction at this
> isolation level could see a control record updated to show that a
> batch has been completed but not see one of the detail records
> which is logically part of the batch because the transaction
> inserting the detail read an earlier version of the control
> record."
>
Yes, it's clearer, but the following yet more clear to me:
"For example, let you have table Receipt with batches and table Control
with a single record pointing to the batch being processed currently.
Let the transaction T1 inserts a records into Receipt. At about the same
time
transaction T2 updates the Control to start working with a new batch and
commits. Next, the read only transaction T3 at this isolation level could
see
an updated by T2 record from Control but not see some records from Receipt
which are part of the some batch, because the uncommitted transaction T1
has used earlier version of record from Control upon inserts."

>
> Hopefully the example from the Wiki makes it clear. There has been
> some discussion about whether to link to the Wiki or bring an
> example like that into the documentation; but we usually don't
> link to Wiki pages and the example is somewhat long to include
> in-line in the documentation. Any thoughts on the best solution to
> that?
>
I've tried to adopt the example from Wiki above.

Thanks!

--
// Dmitry.

In response to

Browse pgsql-docs by date

  From Date Subject
Next Message Alvaro Herrera 2015-08-03 18:37:29 Re: Confused by example in 13.2.2
Previous Message Kevin Grittner 2015-08-03 01:35:50 Re: Confused by example in 13.2.2