From f82d259e7bda843fb63ac1a0f6ff1d6bfb187099 Mon Sep 17 00:00:00 2001 From: Owen Jacobson Date: Wed, 9 Dec 2015 20:40:42 -0500 Subject: Remove HTML from the project. (We're no longer using Dokku.) --- .html/mysql/broken-xa.html | 115 --------------------------------------------- 1 file changed, 115 deletions(-) delete mode 100644 .html/mysql/broken-xa.html (limited to '.html/mysql/broken-xa.html') diff --git a/.html/mysql/broken-xa.html b/.html/mysql/broken-xa.html deleted file mode 100644 index b9a3568..0000000 --- a/.html/mysql/broken-xa.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - The Codex » - MySQL's Two-Phase Commit Implementation Is Broken - - - - - - - - -
- - - - - -
-

MySQL's Two-Phase Commit Implementation Is Broken

-

From the fine -manual:

-
-

If an XA transaction has reached the PREPARED state and the MySQL server is -killed (for example, with kill -9 on Unix) or shuts down abnormally, the -transaction can be continued after the server restarts. However, if the -client reconnects and commits the transaction, the transaction will be -absent from the binary log even though it has been committed. This means the -data and the binary log have gone out of synchrony. An implication is that -XA cannot be used safely together with replication.

-
-

(Emphasis mine.)

-

If you're solving the kinds of problems where two-phase commit and XA -transaction management look attractive, then you very likely have the kinds of -uptime requirements that make replication mandatory. “It works, but not with -replication” is effectively “it doesn't work.”

-
-

It is possible that the server will roll back a pending XA transaction, even -one that has reached the PREPARED state. This happens if a client connection -terminates and the server continues to run, or if clients are connected and -the server shuts down gracefully.

-
-

XA transaction managers assume that if every resource successfully reaches the -PREPARED state, then every resource will be able to commit the transaction -“eventually.” Resources that unilaterally roll back PREPARED transactions -violate this assumption pretty badly.

-
- - - -
-
- - -comments powered by Disqus -
- - - - - -
- - \ No newline at end of file -- cgit v1.2.3