digital-garden/_inbox/Отставание реплики в БД.md

34 lines
2.1 KiB
Markdown
Raw Normal View History

2024-06-13 21:01:37 +03:00
---
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)
- Свои данные читаем с мастера, чужие с реплики
2024-07-03 12:14:39 +03:00
- Читаем с других реплик через n секунд после записи. Но ничего не гарантируется
- Выделить отдельный жесткий диск под [Журнал БД](Журнал%20БД.md), чтобы обеспечить эксклюзивный доступ к ресурсам диска, тем самым улучшая производительность. Менее актуально для SSD.