Replication, Partitioning и Sharding

МЕНЮ


Главная страница
Поиск
Регистрация на сайте
Помощь проекту
Архив новостей

ТЕМЫ


Новости ИИРазработка ИИВнедрение ИИРабота разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика

Авторизация



RSS


RSS новости


1. Replication (репликация)

- Суть: копирование данных на множество серверов. Каждый сервер хранит полную копию датасета.

- Ключевые особенности:

- обеспечивает работу системы при сбоях (если один сервер выходит из строя, другие продолжают работать);

- масштабирует трафик чтения (но не записи);

- использует модели «ведущий–ведомый» (leader–follower) или «множество ведущих» (multi–leader);

- оптимальна для нагрузок с преобладанием операций чтения (read–heavy workloads).

- Пример использования: создание дополнительных slave–серверов для снятия нагрузки с основного сервера, выполнение ресурсоёмких задач (например, аналитических отчётов) на отдельных серверах без влияния на работу других пользователей.

2. Partitioning (партиционирование)

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

- Ключевые особенности:

- ускоряет запросы к большим таблицам за счёт распределения нагрузки;

- упрощает обслуживание и очистку данных (cleanup and maintenance);

- не требует добавления новых машин — работает в рамках одного сервера;

- разбивает данные по выбранным администратором критериям (например, по дате публикации на новостных сайтах).

- Пример использования: секционирование таблиц с большим объёмом данных для ускорения обработки запросов.

3. Sharding (шардирование)

- Суть: распределение данных по разным физическим машинам (шардам) на основе ключа шардинга. Связанные данные группируются и хранятся на одном сервере.

- Ключевые особенности:

- позволяет горизонтально масштабировать систему (horizontal scaling);

- масштабирует как трафик чтения, так и записи;

- требует логики маршрутизации, «осведомлённой» о шардах (shard–aware routing logic);

- используется, когда одна база данных не справляется с нагрузкой;

- ключ шардинга (например, ID пользователя) определяет, на каком сервере будут храниться данные.

- Пример использования: в социальных сетях все данные пользователя (по ключу — ID пользователя) хранятся и обрабатываются на одном сервере, что упрощает обработку и ускоряет запросы.

### Краткое резюме:

- Replication — про отказоустойчивость и масштабирование чтения через копирование полных копий данных.

- Partitioning — про ускорение работы с большими таблицами путём разделения данных внутри одного сервера.

- Sharding — про распределение данных по разным серверам для масштабирования как чтения, так и записи, подходит для крупномасштабных систем.


Источник: vk.com

Комментарии: