【发布时间】:2015-07-07 02:20:26
【问题描述】:
现在我正在查找和配置 mariadb galera 集群?但是我不知道为什么 mariadb galera 集群只支持 InnoDB。
请建议修复它。
非常感谢
【问题讨论】:
现在我正在查找和配置 mariadb galera 集群?但是我不知道为什么 mariadb galera 集群只支持 InnoDB。
请建议修复它。
非常感谢
【问题讨论】:
基本上没有理由支持除 InnoDB 之外的任何引擎。您可以拥有 MyISAM 或 MEMORY 表,但不能同步复制到其他节点。
只有InnoDB才能实现同步复制。我确信 MyISAM 和 MEMORY 永远不会得到完全支持。但是,其他事务安全引擎(Tokudb?)可能有一天会出现。
你为什么想要其他引擎?或许我们可以通过其他方式帮助您实现真正的目标。
附录...
Galera 实现的同步复制需要能够ROLLBACK,即使在COMMIT。否则,当允许写入所有节点时,重复键将是一个无法解决的问题。
顺便说一句... NDB 采用了完全不同的方法——“最终一致性”,其中重复的密钥可以进入系统,但用户必须提供一种算法来修复混乱。
单台机器上的 InnoDB 在执行事务中的语句时进行检查。加莱拉没有。它是“乐观的”——在COMMIT 之前执行事务而不检查其他节点。这提供了性能,因为只有一次往返到其他节点。 (因此,“中型”交易是最优的。)
MyISAM 没办法做到ROLLBACK;这取决于前面的锁定表。在另一个节点上锁定表会非常笨拙和低效。
即使在 WAN 中,Galera 也可以高效工作 -- 再次因为 COMMIT 的单一操作。
【讨论】: