20.1.4.3 Устойчивость к отказам
MySQL Group Replication использует реализацию распределённого алгоритма 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 |
© 2025 Oracle
Licensed under the GPLv2 License.