logo
Шпора ПРИС для Тани

Репликация. Понятие согласованного распределенного набора данных. Варианты репликации. Протокол репликации rowa.

Репликация (тиражирование) данных (Data Replication – DR) – это хранение одних и тех же данных (копий) в нескольких узлах.

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

Функции репликации выполняет специальный модуль СУБД – сервер тиражирования данных, называемый репликатором (replicator). Его задача – поддержка идентичности данных в принимающих базах данных (target database) данным в исходной БД.

Основное понятие – понятие согласованного распределенного набора данных (consistent distributed data set – CDDS). Это набор данных, идентичность которого поддерживается репликатором во всех узлах, вовлеченных в процесс тиражирования.

Возможны три варианта репликации БД. БД может быть:

  1. полностью реплицированной – если копии одного и того же фрагмента данных располагаются на всех узлах сети; все фрагменты реплицированы.

  2. частично реплицированной – если копии одного и того же фрагмента данных располагаются на нескольких узлах сети. Большинстов СУРаБД допускают работу именно с частично-реплицированными БД.

  3. нереплицированной – каждый фрагмент хранится на отдельном узле. Дублированные фрагменты отсутствуют.

На репликацию влияет несколько факторов:

  1. размер БД;

  2. частота использования БД;

  3. затраты, связанные с синхронизацией транзакций и их частей.

Тиражировать можно:

  1. всю БД;

  2. избранные объекты БД: таблицы или представления;

  3. вертикальные проекции объектов БД: избранные столбцы таблиц и/или представлений;

  4. горизонтальные проекции объектов БД: избранные строки таблиц и/или представлений;

  5. сочетания наборов 2-4.

Где тиражируют? Основные схемы тиражирования:

Протоколы репликации

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

Типичный протокол тиражирования, обеспечивающий сериализуемость по критерию полной эквивалентности копий, известен под названием ROWA (Read-Once/Write-All – одно чтение, запись во все копии).

Задача протокола тиражирования – отобразить операции доступа к некоторому элементу х на множества операций над физическими копиями x (x1 , x2 ,..., xn).

Протокол ROWA отображает чтение x Read(x) на операцию чтения какой-либо из копий x Read(xi). Из какой именно копии будет производиться чтение, неважно – этот вопрос может решаться из соображений эффективности. Каждая операция записи в логический элемент данных x отображается на множество операций записи во все физические копии x.

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