Mysql XA隔离级别

有谁知道为什么Mysql需要可序列化的隔离级别来实现XA事务的ACID属性,或者如果使用可重复读取和XA会丢失什么?

However, for a distributed
transaction, you must use the
SERIALIZABLE isolation level to
achieve ACID properties. It is enough
to use REPEATABLE READ for a
nondistributed transaction, but not
for a distributed transaction.

http://dev.mysql.com/doc/refman/5.6/en/xa.html

最佳答案
我认为它与REPEATABLE READ的性质以及mysql引擎中XA的局限性有关(MySQL并不完全符合XA规范).

一个已知问题是某些具有复制的崩溃方案可能导致binlog中缺少事务:From: Restrictions on XA Transactions

有了上述内容,ACID的一致性就会丧失.

我假设SERIALIZABLE强制执行的严格行为可以减轻这种情况,并将其描述为xid等工作方式.但是,对这些问题的阐述却令人怀疑. Mysql 5.6 – Consistent Read

转载注明原文:Mysql XA隔离级别 - 代码日志