MySQL 8.3 Release Notes
MySQL 8.3 中 XCom 消息缓存的最小设置为 128 MB,这使得可以在内存有限的主机上部署。将 group_replication_message_cache_size
设置得非常低是不推荐的,如果主机在不稳定的网络中,因为较小的消息缓存使得组成员在断开连接后重新连接变得更加困难。
如果重新连接的成员无法从 XCom 消息缓存中检索所有需要的消息,那么成员必须离开组并重新加入,以便从另一个成员的二进制日志中检索缺失的事务使用分布式恢复。成员离开组后将进行三次自动重新加入尝试,默认情况下,因此重新加入组的过程可以在不需要操作员干预的情况下进行。但是,使用分布式恢复重新加入组的过程比从 XCom 消息缓存中检索消息要长得多且复杂得多,因此成员需要更长时间才能变得可用,组的性能可能会受到影响。在稳定的网络中,成员断开连接的频率和持续时间最小化,因此这种情况的频率也将最小化,组的性能可能不会受到太大影响。
如果您考虑减少缓存大小限制,可以使用以下语句查询性能模式表 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 可能在删除过程中暂时超过缓存大小限制。