30 lines
2.0 KiB
Markdown
30 lines
2.0 KiB
Markdown
|
---
|
|||
|
aliases:
|
|||
|
tags:
|
|||
|
- зрелость/🌱
|
|||
|
date:
|
|||
|
- - 2024-06-05
|
|||
|
zero-link:
|
|||
|
- "[[00 MySQL]]"
|
|||
|
parents:
|
|||
|
- "[[Репликация БД]]"
|
|||
|
linked:
|
|||
|
---
|
|||
|
Работает как [Репликация master-master](Репликация%20master-master.md), но при количестве узлов больше 2
|
|||
|
|
|||
|
- Все транзакции чтения и записи фиксируются только после того, как они были одобрены группой.
|
|||
|
- Read-only транзакции не требуют координации внутри группы и фиксируются немедленно
|
|||
|
- Групповая репликация - eventual consistency система
|
|||
|
|
|||
|
![](Pasted%20image%2020240605091036.png)
|
|||
|
|
|||
|
## Консенсус
|
|||
|
- Когда транзакция read-write готова к фиксации на исходном сервере, сервер атомарно передает значения записи (строки, которые были изменены) и соответствующий набор записи (уникальные идентификаторы строк, которые были обновлены).
|
|||
|
- Транзакция отправляется через атомарную broadcast рассылку, транзакцию получают либо
|
|||
|
все серверы в группе, либо ни один.
|
|||
|
- Если они его получат, то все они получат его в том же порядке относительно других транзакций, которые были отправлены ранее.
|
|||
|
|
|||
|
Таким образом, все серверы получают один и тот же набор транзакций в одном и том же порядке, и для транзакций устанавливается глобальный общий порядок.
|
|||
|
|
|||
|
## Дополнительные материалы
|
|||
|
- [MySQL 20.1.1.2 Group Replication](https://dev.mysql.com/doc/refman/8.0/en/group-replication-summary.html)
|