Участник:Gorvzavodru/Шардирование

Материал из Циклопедии
Перейти к навигации Перейти к поиску

Шардирование (шардинг, sharding[1], от англ. shard «осколок»[2]) — принцип проектирования базы данных, при котором данные разбиваются на части и размещаются на разных шардах[3].

Термин «шардирование» может использоваться как синоним термина «горизонтальное партиционирование»[4].

Общая информация[править]

Шардирование обычно используется когда[5]:

  • увеличивается количество данных и частота запросов к базе данных.
  • система требует все больше ресурсов, но вертикальное масштабирование кластера, которое предполагает обновление аппаратного обеспечения имеющихся серверов, не может быть использовано, так как существуют физические пределы — по количеству ядер на процессор, количеству процессоров, объему памяти и т. д.

Поскольку шардирование означает разделение набора данных и нагрузки по нескольким узлам СУБД, нужно понимать, по какому принципу реализуется это разделение. Как правило, данные разделяются по какому-то признаку, то есть ключу: записи с одинаковым значением ключа шардирования группируются в единый набор данных, который хранится на одном вычислительном узле, что облегчает обработку[6].

Существует несколько видов шардинга, каждый из которых применяться при определенных требованиях и исходной структуре БД. К основным видам относятся горизонтальное и вертикальное разделение шардирование.

Горизонтальное шардирование представляет из себя метод разделения хранилища по строкам, а точнее по определенным критериям строки. Каждый сегмент содержит одинаковые столбцы, но, соответственно, разные строки.

Вертикальное шардирование же, в свою очередь, подразумевает разделение хранилище по столбцам. В таком случае каждый шард содержит определенные столбцы и все связанные с ними строки.[7]

Связанные определения[править]

  • Шард — отдельный узел внутри кластера, который может состоять из одной или нескольких реплик[3].
  • Реплика — сервер, на который дублируются данные в рамках шарда[3].

См. также[править]

Источники[править]

Категория:Информационные технологии Категория:Базы данных