Thomas Kellerer <spam_eater@gmx.net> wrote:
> There are several quirks in MySQL which might make real life
> harder than a plain feature comparison might express.
>
> One of the really annoying things is that it actually lies about
> what it is doing.
Along those lines, I remember when that in a 2009 paper on
concurrency techniques[1] Michael J. Cahill noted that the work of
a transaction in MySQL is made visible to other transactions, and
the COMMIT request (or stand-alone statement) returns to the
caller, before the work of the transaction is guaranteed to appear
if there is a crash and subsequent recovery. Essentially, the only
mode available in MySQL was what you get with PostgreSQL if you
request synchronous_commit = off. PostgreSQL defaults to waiting
to make the transaction visible and returning to the caller until
after it is guarateed to persist; although it gives you the option,
on a transaction-by-transaction basis, to take the faster route of
skipping that guarantee.
(Apologies if that was covered in one of the referenced links -- I
skimmed them and didn't spot this issue, but it might be there
somewhere....)
--
Kevin Grittner
EDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
[1] Michael James Cahill. 2009.
Serializable Isolation for Snapshot Databases.
Sydney Digital Theses.
University of Sydney, School of Information Technologies.
http://hdl.handle.net/2123/5353