MySQL 9.0 发行说明
用于组复制的组通信引擎 (XCom,Paxos 的变体) 包含一个用于缓存组成员之间交换的消息 (及其元数据) 的缓存,这些消息是共识协议的一部分。除其他功能外,消息缓存用于恢复由与组重新连接的成员错过的消息,这些成员在一段时期内无法与其他组成员通信。
可以使用 group_replication_message_cache_size
系统变量为 XCom 的消息缓存设置缓存大小限制。如果达到缓存大小限制,XCom 会删除已决定和交付的最旧条目。所有组成员都应设置相同的缓存大小限制,因为尝试重新连接的不可达成员会随机选择其他成员以恢复错过的消息。因此,相同的消息应该在每个成员的缓存中可用。
请确保您的系统上有足够的内存来满足您选择的缓存大小限制,同时考虑 MySQL 服务器其他缓存和对象池的大小。请注意,使用 group_replication_message_cache_size
设置的限制仅适用于存储在缓存中的数据,缓存结构需要额外的 50 MB 内存。
在选择 group_replication_message_cache_size
的值时,请考虑成员被驱逐之前的预期消息量。此期间的长度由 group_replication_member_expel_timeout
系统变量控制,该变量决定成员被驱逐之前允许的等待时间 (最多 1 小时) 除了 初始 5 秒检测期间。超时默认为 5 秒,因此默认情况下,成员只有在缺席至少 10 秒后才会被驱逐。