Mysql XA隔离级别

时间:2011-06-07 09:28:11

标签: mysql serializable acid xa

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

  

然而,对于分布式   交易,你必须使用   SERIALIZABLE隔离级别为   实现ACID属性。这就够了   使用REPEATABLE READ来获取   非分销交易,但不是   对于分布式事务。

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

1 个答案:

答案 0 :(得分:1)

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

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

有了上述内容,ACID的一致性就会丢失。

我认为SERIALIZABLE强制执行的严格行为可以将这种情况减轻到他们描述xid等工作所需的程度。但是,对这些问题的阐述却令人怀疑。 Mysql 5.6 - Consistent Read