"Steve Dodd" <[email protected]> writes:
> Say we have two transactions run sequentially: T1 writes some data, and T2
> reads the written data. There is a non-zero time delay between the apparent
> T1 commit, and the subsequent T2 query.
> Is there any guarantee that the data written in T1 will be visible to the
> query in T2?
> We have a situation in our system where it would appear that the answer is NO.
Extremely hard to believe. There is a very well-defined point where the
transaction's effects become visible to other transactions, and that is
certainly before the commit is reported as complete to the client.
I suspect if you dig into it you'll find that your client-side code
is doing something unexpected.
Also worth checking is that "T2" is actually a transaction, and not
a single statement within a serializable-mode transaction. In the latter
case it would see the database state as of the transaction's snapshot,
which might precede T1's commit.
regards, tom lane
--
Sent via pgsql-general mailing list ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general