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: