Re: Press coverage for 9.1 Beta - Mailing list pgsql-advocacy

From Kevin Grittner
Subject Re: Press coverage for 9.1 Beta
Date
Msg-id 4DBFE259020000250003D1C4@gw.wicourts.gov
Whole thread Raw
In response to Press coverage for 9.1 Beta  (Josh Berkus <josh@agliodbs.com>)
Responses Re: Press coverage for 9.1 Beta  (Thomas Kellerer <spam_eater@gmx.net>)
List pgsql-advocacy
Thomas Kellerer  wrote:

> There is one from the german publisher "Heise":
>
>
http://www.heise.de/newsticker/meldung/Beta-von-PostgreSQL-9-1-bringt-synchrone-Replikation-1236154.html
>
> Interesting enough there is some discussion on the "serializable"
> feature. It seems the real meaning of this is not understood
> widely. Among other things there was one comment along the lines:
> "That's the way Oracle's serializable works".

The comments following that article do go pretty wild.

My German is pretty rudimentary (I had to use an online translator to
fill in a lot of blanks I didn't follow reading the German directly).
Could one of our native speakers address these comments?

Here are the main points that seem to me to need clarification:

(1) The implementation the serializable isolation level is
standard-compliant, which requires more than the absence of the three
phenomena in the chart.  See the paragraph containing the words
"serial execution" (in the English version), and the note under the
chart of phenomena and isolation levels.  For an example:

http://www.contrib.andrew.cmu.edu/~shadow/sql/sql1992.txt

(2) Before 9.1 it is not compliant -- not because of the phenomena
listed in the standard, but because the standard doesn't define
serializable transactions in terms of those phenomena.  Certain
well-known serialization anomalies are possible with the snapshot
isolation we previously used when serializable transaction isolation
was requested.

(3) Oracle does not provide a standard compliant implementation.

(4) Outside of some unproven theoretical techniques which exist only
in academic papers, no technique of providing true serializable
transactions does so without the possibility of serialization
failures.  In particular, Strong Strict 2 Phase Locking (SS2PL)
implementations (the only technique in widespread until now) is
vulnerable not only to deadlocks, but blocking.  Even snapshot
isolation can have serialization failures.

(5) The person who tried serializable transaction isolation in some
other product and gave up on it immediately because of the high
levels of blocking and deadlocks might want to give this
implementation a try -- it has no blocking beyond what is present in
snapshot isolation, and not chance of deadlocks.  The serialization
failure rate might still be more than they can tolerate, but it might
be worth testing -- especially if they can easily remove whatever is
currently protecting their data integrity instead.

-Kevin

pgsql-advocacy by date:

Previous
From: Thomas Kellerer
Date:
Subject: Re: Press coverage for 9.1 Beta
Next
From: Joshua Berkus
Date:
Subject: Re: Press coverage for 9.1 Beta