When the database says the data is committed it has to mean the data
is really committed. Imagine if you looked at a bank account balance
after withdrawing all the money and saw a balance which didn't reflect
the withdrawal and allowed you to withdraw more money again...
--
Greg
On 14 Dec 2008, at 14:44, Mark Mielke <m...@mark.mielke.cc> 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)? Or is the machine and
algorithms just fast enough that by the time it executes the query
(up to 1 ms later) the commit is always visible in practice?
Cheers,
mark
--
Mark Mielke <m...@mielke.cc>
--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers
--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers