为什么 MariaDB Galera Cluster 只支持 InnoDB/XtraDB 存储引擎
Why MariaDB Galera Cluster only supports the InnoDB/XtraDB storage engine
现在我找到并配置 mariadb galera 集群了吗?但是我不知道为什么mariadb galera集群只支持InnoDB。
请建议修复。
非常感谢
基本上没有理由支持 InnoDB 以外的任何引擎。您可以 拥有 MyISAM 或 MEMORY table,但无法同步复制到其他节点。
只有InnoDB才能实现同步复制。我确信 MyISAM 和 MEMORY 永远不会得到完全支持。但是,其他事务安全引擎(Tokudb?)可能有一天。
你为什么想要其他引擎?或许我们可以通过其他方式帮助您实现 真正的 目标。
附录...
Galera 实施的同步复制要求能够 ROLLBACK
即使在 COMMIT
。否则,当允许写入所有节点时,重复键将是一个无法解决的问题。
旁白... NDB 采用了一种截然不同的方法 -- "eventual consistency",其中重复的密钥可以进入系统,但用户必须提供修复混乱的算法。
单台机器上的 InnoDB 检查事务中的语句是否正在执行。加莱拉没有。它是 "optimistic" -- 在 COMMIT
之前不检查其他节点就执行事务。这提供了性能,因为每个其他节点只有一次往返。 (因此,"medium sized" 交易是最优的。)
MyISAM没办法做到ROLLBACK
;这取决于预先锁定 table。在另一个节点上锁定 tables 会非常笨拙且效率低下。
Galera 即使在 WAN 中也能高效地工作——同样是因为 COMMIT
上的单一操作。
现在我找到并配置 mariadb galera 集群了吗?但是我不知道为什么mariadb galera集群只支持InnoDB。
请建议修复。
非常感谢
基本上没有理由支持 InnoDB 以外的任何引擎。您可以 拥有 MyISAM 或 MEMORY table,但无法同步复制到其他节点。
只有InnoDB才能实现同步复制。我确信 MyISAM 和 MEMORY 永远不会得到完全支持。但是,其他事务安全引擎(Tokudb?)可能有一天。
你为什么想要其他引擎?或许我们可以通过其他方式帮助您实现 真正的 目标。
附录...
Galera 实施的同步复制要求能够 ROLLBACK
即使在 COMMIT
。否则,当允许写入所有节点时,重复键将是一个无法解决的问题。
旁白... NDB 采用了一种截然不同的方法 -- "eventual consistency",其中重复的密钥可以进入系统,但用户必须提供修复混乱的算法。
单台机器上的 InnoDB 检查事务中的语句是否正在执行。加莱拉没有。它是 "optimistic" -- 在 COMMIT
之前不检查其他节点就执行事务。这提供了性能,因为每个其他节点只有一次往返。 (因此,"medium sized" 交易是最优的。)
MyISAM没办法做到ROLLBACK
;这取决于预先锁定 table。在另一个节点上锁定 tables 会非常笨拙且效率低下。
Galera 即使在 WAN 中也能高效地工作——同样是因为 COMMIT
上的单一操作。