33 lines
1.8 KiB
Markdown
33 lines
1.8 KiB
Markdown
|
---
|
|||
|
aliases:
|
|||
|
- лаг репликации
|
|||
|
tags:
|
|||
|
- зрелость/🌱
|
|||
|
date:
|
|||
|
- - 2024-06-04
|
|||
|
zero-link:
|
|||
|
- "[[00 Базы Данных]]"
|
|||
|
parents:
|
|||
|
- "[[Репликация БД]]"
|
|||
|
linked:
|
|||
|
---
|
|||
|
|
|||
|
Если SQL запрос достаточно тяжелый, то может возникнуть отставание реплик от мастера. Кажется такое возможно только в MySQL, когда например мы передаем на реплику сам запрос. Но если в PostgreSQL мы передаем не сам запрос, а блоки данных, то отставание по идее должно быть меньше.
|
|||
|
|
|||
|
![](Pasted%20image%2020240219184314.png)
|
|||
|
|
|||
|
В нормальной ситуации отставание достигает 1 секунды.
|
|||
|
|
|||
|
Что может приводить к лагу:
|
|||
|
- Медленные и сложные запросы.
|
|||
|
- Сетевые проблемы.
|
|||
|
- Размер [WAL](Write-Ahead%20Log.md).
|
|||
|
- Проблемы дисковой подсистемы реплики.
|
|||
|
|
|||
|
Рекомендации:
|
|||
|
- Убивайте медленные запросы. Если запрос висит уже 10 секунд, то лучше его прибить.
|
|||
|
- Держать отдельную реплику для медленных запросов.
|
|||
|
- Думайте о кросс-СУБД репликации Репликация из реляционной бд в NoSQL
|
|||
|
- Избегать паттерна запись-чтение ![](Pasted%20image%2020240607211343.png)
|
|||
|
- Свои данные читаем с мастера, чужие с реплики
|
|||
|
- Читаем с других реплик через n секунд после записи. Но ничего не гарантируется
|