5.1. Введение
созданными копиями). В большинстве продуктов асинхронная реплика-
ция реализуется посредством чтения журнала транзакций или постоян-
ной очереди тех обновлений, которые подлежат распространению. Пре-
имущество асинхронной репликации состоит в том, что дополнительные
издержки репликации не связаны с транзакциями обновлений, которые
могут иметь важное значение для функционирования всего предприятия
и предъявлять высокие требования к производительности. К недостаткам
этой схемы относится то, что данные могут оказаться несовместимыми
(то есть несовместимыми с точки зрения пользователя). Иными словами,
избыточность может проявляться на логическом уровне, а это, строго го-
воря, означает, что термин контролируемая избыточность в таком случае
не применим.
Рассмотрим кратко проблему согласованности (или, скорее, несогласо-
ванности). Дело в том, что реплики могут становиться несовместимыми
в результате ситуаций, которые трудно (или даже невозможно) избежать
и последствия которых трудно исправить. В частности, конфликты могут
возникать по поводу того, в каком порядке должны применяться обновле-
ния. Например, предположим, что в результате выполнения транзакции
А происходит вставка строки в реплику X, после чего транзакция B уда-
ляет эту строку, а также допустим, что Y — реплика X. Если обновления
распространяются на Y, но вводятся в реплику Y в обратном порядке (на-
пример, из-за разных задержек при передаче), то транзакция B не находит
в Y строку, подлежащую удалению, и не выполняет своё действие, после
чего транзакция А вставляет эту строку. Суммарный эффект состоит в
том, что реплика Y содержит указанную строку, а реплика X — нет.
В целом задачи устранения конфликтных ситуаций и обеспечения со-
гласованности реплик являются весьма сложными. Следует отметить, что,
по крайней мере, в сообществе пользователей коммерческих баз данных
термин репликация стал означать преимущественно (или даже исключи-
тельно) асинхронную репликацию.
Основное различие между репликацией и управлением копированием
заключается в следующем: если используется репликация, то обновление
одной реплики в конечном счёте распространяется на все остальные авто-
матически. В режиме управления копированием, напротив, не существу-
ет такого автоматического распространения обновлений. Копии данных
создаются и управляются с помощью пакетного или фонового процесса,
который отделён во времени от транзакций обновления. Управление ко-
пированием в общем более эффективно по сравнению с репликацией, по-
скольку за один раз могут копироваться большие объёмы данных. К недо-
статкам можно отнести то, что большую часть времени копии данных не
идентичны базовым данным, поэтому пользователи должны учитывать,
когда именно были синхронизированы эти данные. Обычно управление
копированием упрощается благодаря тому требованию, чтобы обновления
применялись в соответствии со схемой первичной копии того или иного
66