ScholarGate
Ассистент

Разделение и репликация данных

Разделение данных распределяет базу данных по нескольким узлам для масштабируемости, в то время как репликация хранит копии данных на нескольких узлах для обеспечения доступности и производительности чтения; вместе они определяют, как распределенная база данных масштабируется и обеспечивает отказоустойчивость.

Найти тему в PaperMindСкороFind papers & topics
Tools & resources
Скачать слайды
Learn & explore
ВидеоСкоро

Definition

Разделение (фрагментация или шардирование) делит строки или столбцы отношения между несколькими узлами, так что каждый из них содержит часть данных; репликация хранит копии одних и тех же данных на нескольких узлах; политики размещения и репликации совместно регулируют масштабируемость, доступность и баланс нагрузки.

Scope

Эта тема охватывает способы размещения данных по узлам: горизонтальное разделение (шардирование) по диапазону, хешу или списку и вертикальное разделение по столбцам; стратегии разделения, включая согласованное хеширование; и модели репликации — синхронная против асинхронной, первичная-резервная против мульти-первичной — вместе с компромиссами между согласованностью и доступностью, которые они подразумевают. В ней рассматривается, как разделение обеспечивает параллелизм и как репликация обеспечивает отказоустойчивость. Она исключает протоколы фиксации и консенсуса, которые поддерживают согласованность реплик, что является смежной темой.

Core questions

  • Как разделение по диапазону, хешу и списку распределяет строки по узлам?
  • Когда вертикальное разделение предпочтительнее горизонтального?
  • Как согласованное хеширование ограничивает перемещение данных при добавлении или удалении узлов?
  • Каковы компромиссы между синхронной и асинхронной репликацией?
  • Чем отличаются первичная-резервная и мульти-первичная репликация с точки зрения согласованности и доступности?

Key concepts

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

Key theories

Горизонтальное и вертикальное разделение
Горизонтальное разделение (шардирование) распределяет строки таблицы по узлам с помощью ключа раздела для распределения нагрузки и обеспечения параллельной обработки, в то время как вертикальное разделение делит таблицу по столбцам; функция разделения критически влияет на баланс нагрузки и локальность запросов.
Согласованное хеширование
Согласованное хеширование отображает ключи и узлы на кольцо таким образом, что добавление или удаление узла перемещает лишь небольшую, ограниченную часть ключей, что делает его фундаментальным методом разделения в эластичных распределенных хранилищах данных.
Модели репликации и компромиссы
Синхронная репликация поддерживает идентичность копий ценой задержки и доступности при разделении, в то время как асинхронная репликация быстрее, но может предоставлять устаревшие данные; первичная-резервная модель централизует операции записи, тогда как мульти-первичная позволяет выполнять запись в любом месте ценой разрешения конфликтов.

Clinical relevance

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

History

Фрагментация и репликация изучались в ранних распределенных системах баз данных конца 1970-х и 1980-х годов. Согласованное хеширование, представленное Каргером и коллегами в 1997 году для веб-кэширования, позднее было принято масштабируемыми хранилищами типа «ключ-значение» в качестве схемы разделения, а крупные интернет-сервисы популяризировали агрессивное шардирование и репликацию для обеспечения эластичности и доступности.

Key figures

  • M. Tamer Özsu
  • Patrick Valduriez
  • David Karger

Related topics

Seminal works

  • ozsu2011
  • karger1997

Frequently asked questions

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

Methods for this concept

Related concepts