✈️Масштабирование

Как масштабировать базу: синхронная репликация, шардирование

Для масштабирования базы данных существуют два основных подхода: синхронная репликация и шардирование[1][2][3][4][5].

Синхронная репликация

Синхронная репликация подразумевает, что данные записываются одновременно на основной сервер (лидер) и на один или несколько резервных серверов (фолловеры)[3]. Это обеспечивает высокую доступность данных, так как при отказе основного сервера можно переключиться на фолловер. Однако синхронная репликация накладывает дополнительные накладные расходы на запись, так как транзакция должна быть подтверждена на всех серверах[3].

Шардирование

Шардирование заключается в разделении данных на логические части (шарды) и распределении их между несколькими физическими серверами[1][2][4][5]. Это позволяет масштабировать нагрузку на запись, так как данные распределяются между серверами. Ключевым моментом является выбор правильного ключа шардирования, который должен обеспечивать равномерное распределение данных[1][2].

Выбор между синхронной репликацией и шардированием зависит от конкретных требований приложения к доступности, производительности записи и чтения[3]. Часто используется комбинация обоих подходов для достижения оптимальной масштабируемости[1][2][3][4][5].

Citations: [1] https://habr.com/ru/articles/440306/ [2] https://web-creator.ru/articles/partitioning_replication_sharding [3] https://habr.com/ru/companies/selectel/articles/708434/ [4] https://learn.microsoft.com/ru-ru/azure/well-architected/performance-efficiency/scale-partition [5] https://reindexer.io/reindexer-docs/sharding/

Как работает репликация базы данных?

Репликация базы данных представляет собой процесс синхронизации данных между несколькими серверами баз данных в режиме реального времени[2][3][5]. Основной принцип работы репликации базы данных включает следующие этапы:

  1. Идентификация Мастера и Реплик: В процессе репликации выделяется основной сервер базы данных (Мастер), на котором происходят изменения данных, и один или несколько резервных серверов (Реплики), на которые данные реплицируются.

  2. Передача Изменений: Любые изменения, вносимые в данные на Мастере, автоматически передаются на Реплики в режиме реального времени. Это позволяет обеспечить согласованность данных между всеми серверами баз данных.

  3. Режимы Репликации: Существуют различные режимы репликации, такие как мастер-реплика и каскадная репликация. В режиме мастер-реплика изменения вносятся только на Мастере и реплицируются на Реплики. В каскадной репликации изменения передаются по цепочке от одной Реплики к другой.

  4. Отказоустойчивость и Доступность: Репликация базы данных обеспечивает отказоустойчивость системы. В случае отказа одной Реплики, все запросы чтения могут быть перенаправлены на Мастер, обеспечивая непрерывную работу системы.

  5. Преимущества: Репликация баз данных позволяет увеличить производительность системы, обеспечить отказоустойчивость, справляться с нагрузкой и повысить доступность данных[2][3][5].

Таким образом, репликация базы данных является важным механизмом для обеспечения целостности данных, отказоустойчивости и эффективного управления информацией в распределенных системах.

Citations: [1] https://www.astera.com/ru/type/blog/data-replication/ [2] https://blog.set-pro.net/%D0%B4%D0%BB%D1%8F-%D1%87%D0%B5%D0%B3%D0%BE-%D0%BD%D1%83%D0%B6%D0%BD%D0%B0-%D1%80%D0%B5%D0%BF%D0%BB%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F-%D0%B1%D0%B0%D0%B7-%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85/ [3] https://db-service.ru/blog/chto_takoie_rieplikatsiia_baz_dannykh [4] https://habr.com/ru/articles/514500/ [5] https://blog.cortel.cloud/2022/11/03/replikacziya-dannyh-v-razlichnyh-subd/

Last updated