文档首页
MySQL 9.0 参考手册
相关文档 下载本手册
PDF (US Ltr) - 40.0Mb
PDF (A4) - 40.1Mb
手册页 (TGZ) - 258.2Kb
手册页 (Zip) - 365.3Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


20.7.2 流量控制

组复制确保事务仅在组中大多数成员收到并就所有并发发送的事务的相对顺序达成一致后才提交。如果写入组的总数量不超过组中任何成员的写入能力,这种方法非常有效。如果超过了这个限制,并且某些成员的写入吞吐量低于其他成员,特别是低于写入成员,那么这些成员可能会开始落后于写入成员。

有些成员落后于组会导致一些问题,特别是这些成员上的读取可能会输出非常旧的数据。根据成员落后的原因,组中的其他成员可能需要保存更多或更少的复制上下文,以便能够满足来自速度较慢成员的潜在数据传输请求。

但是,复制协议中有一个机制可以避免在应用事务方面,快速成员和慢速成员之间存在太多距离。这被称为流量控制机制。它试图解决几个目标

  1. 使成员保持足够接近,从而使成员之间的缓冲和不同步成为一个较小的问题;

  2. 快速适应不断变化的条件,如不同的工作负载或组中更多的写入者;

  3. 让每个成员公平地分享可用的写入能力;

  4. 不要比严格必要时减少吞吐量,避免浪费资源。

鉴于组复制的设计,是否进行节流的决定可以考虑两个工作队列:(i) 认证 队列;(ii) 以及二进制日志 应用 队列。只要其中一个队列的大小超过用户定义的阈值,就会触发节流机制。只需配置:(i) 是否在认证器或应用器级别进行流量控制,或两者兼而有之;以及 (ii) 每个队列的阈值。

流量控制取决于两种基本机制

  1. 监控成员以收集有关所有组成员的吞吐量和队列大小的统计信息,以对每个成员应承受的最大写入压力进行合理的猜测;

  2. 对试图超出其在任何时间点所占可用容量的公平份额的成员进行节流。