Mysql が XA トランザクションで ACID プロパティを実現するためにシリアル化可能な分離レベルを必要とする理由、または反復可能な読み取りと XA を使用した場合に何が失われるかを知っている人はいますか?
ただし、分散トランザクションの場合は、SERIALIZABLE 分離レベルを使用して ACID プロパティを実現する必要があります。非分散トランザクションには REPEATABLE READ を使用するだけで十分ですが、分散トランザクションには使用できません。
Mysql が XA トランザクションで ACID プロパティを実現するためにシリアル化可能な分離レベルを必要とする理由、または反復可能な読み取りと XA を使用した場合に何が失われるかを知っている人はいますか?
ただし、分散トランザクションの場合は、SERIALIZABLE 分離レベルを使用して ACID プロパティを実現する必要があります。非分散トランザクションには REPEATABLE READ を使用するだけで十分ですが、分散トランザクションには使用できません。
これは、mysql エンジンの XAの性質REPEATABLE READ
と制限に関係していると思います (MySQL は XA 仕様に完全に準拠していません)。
既知の問題は、レプリケーションでの特定のクラッシュ シナリオにより、バイナリログにトランザクションが存在しない可能性があることです: From: XA トランザクションの制限
上記により、ACID の一貫性が失われます。
によって強制される厳密な動作によりSERIALIZABLE
、xid などの動作を説明する方法で必要な範囲でこれが緩和されると思います。しかし、これらの問題についての詳細は、疑わしいほど欠落しています。 Mysql 5.6 - 一貫した読み取り