MariaDB’s Snapshot Isolation: A Fix That Breaks More Than It Fixes

MariaDB’s Snapshot Isolation: A Fix That Breaks More Than It Fixes

📝

内容提要

MariaDB 11.8引入了innodb_snapshot_isolation变量,旨在解决Jepsen对MySQL 8.0.34的并发和隔离问题。然而,该修复并不完整,仍存在并发负载下的异常,并与MySQL不兼容,导致ERROR 1020错误,增加了迁移难度。

🎯

关键要点

  • MariaDB 11.8引入了innodb_snapshot_isolation变量,旨在解决Jepsen对MySQL 8.0.34的并发和隔离问题。

  • 该修复并不完整,仍然可以在并发负载下重现Jepsen指出的异常。

  • innodb_snapshot_isolation的默认启用模式与MySQL不兼容,导致ERROR 1020错误。

  • ERROR 1020错误使得许多应用程序在MariaDB 11.8上运行失败,增加了迁移的难度。

  • 快照隔离应该保证事务在开始时看到一致的数据库视图,但MariaDB的实现并未完全达到这一目标。

延伸问答

MariaDB 11.8引入的innodb_snapshot_isolation变量有什么目的?

该变量旨在解决Jepsen对MySQL 8.0.34的并发和隔离问题。

MariaDB 11.8的innodb_snapshot_isolation变量存在什么问题?

该修复并不完整,仍然可以在并发负载下重现Jepsen指出的异常。

ERROR 1020错误是什么,为什么会在MariaDB 11.8中出现?

ERROR 1020表示记录在上次读取后已更改,出现在使用innodb_snapshot_isolation时,导致与MySQL不兼容。

使用MariaDB 11.8时,应用程序可能遇到什么问题?

许多应用程序在MariaDB 11.8上运行失败,增加了迁移的难度。

快照隔离应该如何工作,MariaDB的实现达到了预期吗?

快照隔离应保证事务在开始时看到一致的数据库视图,但MariaDB的实现并未完全达到这一目标。

MariaDB 11.8的innodb_snapshot_isolation与MySQL的兼容性如何?

innodb_snapshot_isolation的默认启用模式与MySQL不兼容,导致ERROR 1020错误。

➡️

继续阅读