On 25.10.2011 12:51, Paul Stapersma wrote:
PostgreSQL version: 8.3.3
That is a pretty old version. At least you should use the latest version in the 8.3 series, which is currently 8.3.16. I'm not sure if there's been any isolation-related bug fixes since 8.3.3, but I don't see any reason not to test using the latest minor version.
Even better, use the latest and greated version, 9.1.1. 9.1 is a very interesting release for the stuff you're doing, because it is the first version to implement the Serializable level correctly, which is different from the Snapshot Isolation we had previously. It uses a technique called Serializable Snapshot Isolation.
For a project at my University, we compared PostgreSQL with MySQL's InnoDB. In this research, we found several cases in which anomalies where detected in Isolation levels that guaranteed not to have these anomalies. In short summary: - we detected non-repeatable reads in the repeatable read isolation level - we detected non-repeatable reads in the serializable isolation level - we detected phantoms in the serializable isolation level - we detected lost updates in the repeatable read isolation level - we detected lost updates in the serializable isolation level Furthermore, we detected differences between Read Committed and Read Uncommitted and differences between Serializable and Repeatable Read which is in contrast to the documentation.
That is all pretty hard to believe, to be honest. I'd suggest that you check you testing methodology. If you can provide a short self-contained test script to demonstrate one of those unexpected anomalies, me or someone else on the mailing list can take a closer look.
-- Heikki Linnakangas EnterpriseDB http://www.enterprisedb.com -- Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-bugs