MySQL 8.3 Release Notes
MySQL 组复制基于 Paxos 分布式算法的实现,以提供服务器之间的分布式协调。因此,它需要大多数服务器处于活动状态以达到仲裁并因此做出决定。这直接影响了系统可以容忍的故障数量而不影响其整体功能。需要的服务器数量(n)来容忍 f
故障是 n = 2 x f + 1
。
在实践中,这意味着要容忍一个故障,组必须至少有三个服务器。如果一个服务器故障,还有两个服务器可以形成多数(两个中的两个),允许系统继续自动做出决定并继续进行。但是,如果第二个服务器故障 非自愿,那么组(剩下一个服务器)将阻塞,因为没有多数来做出决定。
以下是一个小表,说明了上面的公式。
组大小 |
多数 |
瞬时故障容忍 |
---|---|---|
1 |
1 |
0 |
2 |
2 |
0 |
3 |
2 |
1 |
4 |
3 |
1 |
5 |
3 |
2 |
6 |
4 |
2 |
7 |
4 |
3 |