MySQL 8.4 Release Notes
20.7.6.2 缓存大小减少
MySQL 8.4 中 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 可能在进行这项删除过程时临时超出缓存大小限制。