From: | Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com> |
---|---|
To: | Mark Mielke <mark(at)mark(dot)mielke(dot)cc> |
Cc: | Markus Wanner <markus(at)bluegap(dot)ch>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Robert Haas <robertmhaas(at)gmail(dot)com>, Simon Riggs <simon(at)2ndquadrant(dot)com>, Fujii Masao <masao(dot)fujii(at)gmail(dot)com>, aidan(at)highrise(dot)ca, Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com>, PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: Sync Rep: First Thoughts on Code |
Date: | 2008-12-14 20:06:52 |
Message-ID: | 4945675C.7060607@enterprisedb.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Mark Mielke wrote:
> Mark Mielke wrote:
>> Forget replication - even for the exact same server - I don't expect
>> that if I commit from one session, I will be able to see the change
>> immediately from my other session or a new session that I just opened.
>> Perhaps this is often stable to rely on this, and it is useful for the
>> database server to minimize the window during which the commit becomes
>> visible to others, but I think it's a false expectation from the start
>> that it absolutely will be immediately visible to another session. I'm
>> thinking of situations where some part of the table is in cache. The
>> only way the commit can communicate that the new transaction is
>> available is by during communication between the processes or threads,
>> or between the multiple CPUs on the machine. Do I want every commit to
>> force each session to become fully in alignment before my commit
>> completes? Does PostgreSQL make this guarantee today? I bet it doesn't
>> if you look far enough into the guts. It might be very fast - I don't
>> think it is infinitely fast.
>
> FYI: I haven't been able to prove this. Multiple sessions running on my
> dual-core CPU seem to be able to see the latest commits before they
> begin executing. Am I wrong about this? Does PostgreSQL provide a
> intentional guarantee that a commit from one session that completes
> immediately followed by a query from another session will always find
> the commit effect visible (provide the transaction isolation level
> doesn't get in the way)?
Yes. PostgreSQL does guarantee that, and I would expect any other DBMS
to do the same.
--
Heikki Linnakangas
EnterpriseDB http://www.enterprisedb.com
From | Date | Subject | |
---|---|---|---|
Next Message | Alvaro Herrera | 2008-12-14 20:21:31 | Re: So, why shouldn't SET CONSTRAINTS set a transaction snapshot? |
Previous Message | Pavel Stehule | 2008-12-14 20:03:34 | Re: WIP: default values for function parameters |