From: | Andrew Sullivan <ajs(at)crankycanuck(dot)ca> |
---|---|
To: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: Reliable and fast money transaction design |
Date: | 2007-08-30 19:12:30 |
Message-ID: | 20070830191230.GQ7661@phlogiston.dyndns.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
On Thu, Aug 30, 2007 at 02:21:56PM -0400, Tom Lane wrote:
> SERIALIZABLE mode does not introduce any waits that wouldn't happen
> anyway. It only affects what happens after you stop waiting.
Ok, this makes me think I'm deeply confused about something. (Uh,
well, on this specific topic. Anyone who's ever read any of my posts
or talked to me for 10 seconds will attest that I'm deeply confused
about plenty of things generally!)
I had the impression that, when working in READ COMMITTED mode, you
could see (for instance) _new_ rows that were INSERTed by others who
were also doing work. In SERIALIZABLE, you couldn't. So in cases
where the additional rows met criteria in your WHERE clause late in
your transaction, SERIALIZABLE had to throw them away. For instance,
in READ COMMITTED, in a longish transaction, the "WHERE processed on
IS NULL" might match more rows than were available at the beginning
of the transaction when you SELECTed them, but in SERIALIZABLE, you
can't see those additional rows. Is that wrong? (If so, I'm going
to have to spend some time working out clarifications for the manual.)
And doesn't the SERIALIZABLE transaction have to figure out that
"this row doesn't count for me"?
A
--
Andrew Sullivan | ajs(at)crankycanuck(dot)ca
I remember when computers were frustrating because they *did* exactly what
you told them to. That actually seems sort of quaint now.
--J.D. Baldwin
From | Date | Subject | |
---|---|---|---|
Next Message | Andrew Sullivan | 2007-08-30 19:21:33 | Re: PostgreSQL.Org |
Previous Message | Ron Mayer | 2007-08-30 19:00:58 | Re: PostgreSQL.Org |