MySQL 9.0 发行说明
MySQL 9.0 中 XCom 消息缓存大小的最小设置为 128 MB,这使得可以在可用内存有限的主机上进行部署。如果主机在不稳定的网络上,则不建议使用非常低的 group_replication_message_cache_size
设置,因为较小的消息缓存会使组成员在连接暂时断开后更难以重新连接。
如果重新连接的成员无法从 XCom 消息缓存中检索到所需的所有消息,则该成员必须离开组并重新加入,以便从另一个成员的二进制日志中使用分布式恢复检索丢失的事务。默认情况下,已离开组的成员会进行三次自动重新加入尝试,因此重新加入组的过程仍然可以在没有操作员干预的情况下进行。但是,使用分布式恢复重新加入比从 XCom 消息缓存中检索消息的过程要长得多且复杂得多,因此成员需要更长时间才能变得可用,并且组的性能可能会受到影响。在稳定的网络上,这会最大程度地减少成员连接暂时断开的频率和持续时间,因此这种发生的频率也应该最小化,因此组可能能够容忍更小的 XCom 消息缓存大小而不会对其性能产生重大影响。
如果您正在考虑减少缓存大小限制,则可以使用以下语句查询 Performance Schema 表 memory_summary_global_by_event_name
SELECT * FROM performance_schema.memory_summary_global_by_event_name
WHERE EVENT_NAME LIKE 'memory/group_rpl/GCS_XCom::xcom_cache';
这将返回消息缓存的内存使用情况统计信息,包括当前缓存条目数量和当前缓存大小。如果您减少缓存大小限制,XCom 会删除已决定并传递的最旧条目,直到当前大小低于限制为止。在进行此删除过程时,XCom 可能会暂时超过缓存大小限制。