Потоковая обработка данных в PostgreSQL (потоковая репликация, streaming replication) заключается в передаче записей из журнала предзаписи транзакций (WAL) от основного сервера (мастера) к репликам. selectel.ru eax.me Затем каждая реплика изменяет свои данные по этому журналу. selectel.ru
Потоковая репликация бывает двух видов: selectel.ru
- Асинхронная. selectel.ru PostgreSQL сначала применяет изменения на основном узле и только потом отправляет записи из WAL на реплики. selectel.ru Преимущество такого способа — быстрое подтверждение транзакции, так как не нужно ждать, пока все реплики применят изменения. selectel.ru Недостаток — при падении основного сервера часть данных на репликах может потеряться, так как изменения не успели продублироваться. selectel.ru
- Синхронная. selectel.ru Изменения сначала записываются в WAL хотя бы одной реплики и только после этого фиксируются на основном сервере. selectel.ru Преимущество — более надёжный способ, при котором сложнее потерять данные. selectel.ru Недостаток — операции выполняются медленнее, потому что прежде чем подтвердить транзакцию, нужно сначала продублировать её на реплике. selectel.ru
Для настройки потоковой репликации все серверы должны быть одной версии, работать на одной ОС и архитектуре. selectel.ru