Re: SSI implementation question

From: "Kevin Grittner" <Kevin(dot)Grittner(at)wicourts(dot)gov>
To: "Dan Ports" <drkp(at)csail(dot)mit(dot)edu>,"Tom Lane" <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: <pgsql-hackers(at)postgreSQL(dot)org>
Subject: Re: SSI implementation question
Date: 2011-10-19 18:35:54
Message-ID: 4E9ED23A0200002500042242@gw.wicourts.gov
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

"Kevin Grittner" <Kevin(dot)Grittner(at)wicourts(dot)gov> wrote:

> If the intent is that each serializable transaction sharing
> the snapshot is a separate logical transaction, it *might* hold --

I think the rules have to be that the snapshot provided to a
serializable transaction must be provided by an active serializable
transaction. That prevents the serializable global xmin from moving
backwards; which is not allowed except during recovery processing of
prepared transactions. Each transaction using the snapshot is a
logically separate transaction -- they just have a shared view of
the state of the data.

> If the intent is that the work of one logical transaction is being
> split across processes, then SSI doesn't hold up without somehow
> tying all of the processes to a single SERIALIZABLEXACT; and then
> the direct access to MySerializableXact falls apart.

Except, as discussed on a separate, concurrent thread, that a READ
ONLY transaction might find its snapshot to be safe -- at which
point it no longer uses a SERIALIZABLEXACT.

-Kevin

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Kohei KaiGai 2011-10-19 19:30:06 Re: [v9.2] DROP statement reworks
Previous Message Kevin Grittner 2011-10-19 17:49:07 Re: synchronized snapshots