TGViewer
Системный анализ на максималках Системный анализ на максималках @system_analysis_max · 880 subscribers
Post #18 597
Просто о репликации

Продолжаем изучать сложные термины БД. Ранее разобрались, что репликация – это создание копий БД с поддержкой актуальности. Погрузимся в эту тему чуть глубже

Хозяева и рабы

📌 Пару терминов перед началом:

• Master (хозяин) – основная БД
• Slave (раб) – «подчиненная» БД, т.е. реплика. Может быть несколько для одного Master

Машины тоже добиваются отмены рабства, поэтому сейчас также используются термины Primary-Replica или Leader-Follower. Но для простоты понимания остановимся на Master-Slave


Выделяют несколько видов репликации:

Master-Slave. Основная БД для записи данных, а реплики – для чтения (и иногда для записи). Если Master падает, Slave поднимается по карьерной лестнице и становится Master без права возврата первого😼
• Master-Master. В распределенных системах у каждого сервака свой Master: они синхронизируют записи и могут распределять нагрузку, но есть риск конфликта 👊
Каскадная. Один раб выступает хозяином для другого. Данные реплицируются по уровням Master -> Slave -> Slave. Надежно, но долго
• Равноправная (Peer-2-Peer). Оковы сняты – каждый узел самостоятелен и может писать, читать и отправлять изменения. Но опять высок риск конфликта🙈

Где что использовать:
• Master-Slave – для систем с нагрузкой на чтение (веб-приложения, аналитика)
• Master-Master – для систем с несколькими дата-центрам (например, в разных странах)
• Каскадная – для больших систем (Wikipedia, соцсети)
• Peer-2-Peer – для распределенных систем (блокчейн)

Как происходит репликация

Есть два типа взаимодействия:
• Синхронная репликация – отправляем данные на реплику и ждем подтверждения о записи ✅
Асинхронная репликация – отправляем данные на реплику и не ждем ответа, а лукавим и говорим клиенту, что все ОК 😏

Синхронная гарантирует строгую согласованность: при чтении из любой реплики получим одни и те же данные. Поэтому такой вид применяется в банках, платежных сервисах, системах бронирования

Для асинхронной тоже есть применение там, где задержка в обновлении данных (а это от миллисекунд до минут) некритична: соц. сети, блоги, интернет-магазины

Кто рассылает изменения

И еще одна небольшая классификация касается инициатора изменений:
• Мастер сам отправляет изменения репликам – это push-модель
• Реплики самостоятельно стягивают данные у мастера – это pull-модель

Push-модель подойдет для систем с высокой скоростью обновлений (банки, финансовые транзакции), pull-модель – для систем, где не требуются минимальные задержки (например, аналитика)

—————

В следующем посте поговорим про партиционирование, а затем про босса этой мини-подборки – шардирование

#полезное_системный_анализ
  • ❤ 8
  • 🔥 2
  • 👌 2
More from @system_analysis_max
  1. Mar 27, 2026Прошел испытательный срок в Альфе 🅰️ Правда, это было 2 месяца назад, но время порефлекси…
  2. Mar 16, 2026Продолжая предыдущий пост Как вы помните, на прошлой неделе объявили о закрытии школы Syst…
  3. Mar 11, 2026Про опыт преподавания Давненько не писал в блог, пора исправляться Последние два месяца вы…
  4. Feb 10, 2026WebSocket на практике 📌 А вы знали, что в Postman можно протестировать не только REST API…
  5. Jan 21, 2026RabbitMQ на практике 📌 Часто ко мне на консультации приходят с запросом отточить какие-ни…
  6. Jan 15, 2026Первый пост в 2026 году Будет очень простым, потому что после выходных я еще не до конца в…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →