Распределенная обработка данных. Найханова Л.В. - 35 стр.

UptoLike

Составители: 

35
транзакции. Однако существовало несколько коммерческих программных продуктов с
поддержкой менее амбициозной формы репликации. В ней распространение обновления
гарантировалось в будущем (вероятно, в некоторое заданное пользователем время), но не
обязательно в рамках соответствующей транзакции. К сожалению, термин "репликация" в
некоторых программных продуктах был использован в несколько ином смысле, чем
следует. В результате на рынке программного обеспечения утвердилось мнение, что
распространение обновления откладывается вплоть до завершения соответствующей
транзакции. Проблема такого "откладываемого распространения" заключается в том, что
пользователь в некоторый заданный момент времени не знает, согласована база данных
или нет. Поэтому в базе данных не может быть гарантирована совместимость в
произвольный момент времени.
В заключение стоит привести несколько дополнительных замечаний в отношении
откладываемого распространения обновления.
1. Концепция репликации в системе с откладываемым распространением
обновления может рассматриваться как ограниченное воплощение идеи снимков.
2. Одна из причин (возможно, самая главная) использования в программных продук-
тах откладываемого распространения обновления заключается в том, что для об-
новления всех реплик до завершения транзакции требуется поддержка протокола
двухфазной фиксации, для которого, в свою очередь, требуется исправность всех
соответствующих узлов и их готовность к запуску во время выполнения
транзакции, что отрицательно влияет на производительность. Такое положение
дел характеризуется появлением в печати статей с загадочными заголовками типа
"Репликация или двухфазная фиксация". Причем их загадочность вызвана тем,
что сравниваются преимущества двух совершенно разных подходов.
Управление восстановлением
Управление восстановлением в распределенных системах обычно основано на
протоколе двухфазной фиксации (или некотором варианте этого протокола). Поддержка
двухфазной фиксации необходима в любой среде, в которой одна транзакция может
взаимодействовать с несколькими автономными администраторами ресурсов. Однако она
особенно важна в распределенной системе, поскольку администраторы ресурсов, т.е.
локальные СУБД, действуют на разных узлах и, следовательно, автономны.
Здесь необходимо отметить несколько важных особенностей.
1. Стремление к "независимости от центрального узла" означает, что функция коор-
динатора не должна присваиваться ни одному из узлов сети, вместо этого она
должна выполняться для разных транзакций различными узлами. Обычно она
выполняется узлом, на котором данная транзакция была запущена. Таким
образом, каждый узел должен для одних транзакций выполнять роль узла-
координатора, а для других - узла-участника.
2. При двухфазной фиксации требуется, чтобы координатор обменивался данными с
каждым узлом-участником, что, в свою очередь, означает большее количество со-
общений и больше накладных расходов.
3. Если узел Y действует как участник процесса двухфазной фиксации, координи-
руемого узлом X, то узел Y должен выполнять любые действия, предписываемые
узлом X (например, завершение или отмену выполнения транзакции). При этом
неизбежна утрата локальной автономности.
4. В идеальной ситуации, конечно, хотелось бы, чтобы процесс двухфазной фикса-
ции продолжался несмотря на неисправность сети или отдельных узлов либо был
устойчив по отношению к любым возможным видам неисправности. К сожале-
нию, легко заметить, что эта проблема неразрешима в принципе, т.е. не существу-
ет никакого конечного протокола, который мог бы гарантировать, что все агенты
одновременно завершат выполнение успешной транзакции либо отменят выпол-
транзакции. Однако существовало несколько коммерческих программных продуктов с
поддержкой менее амбициозной формы репликации. В ней распространение обновления
гарантировалось в будущем (вероятно, в некоторое заданное пользователем время), но не
обязательно в рамках соответствующей транзакции. К сожалению, термин "репликация" в
некоторых программных продуктах был использован в несколько ином смысле, чем
следует. В результате на рынке программного обеспечения утвердилось мнение, что
распространение обновления откладывается вплоть до завершения соответствующей
транзакции. Проблема такого "откладываемого распространения" заключается в том, что
пользователь в некоторый заданный момент времени не знает, согласована база данных
или нет. Поэтому в базе данных не может быть гарантирована совместимость в
произвольный момент времени.
     В заключение стоит привести несколько дополнительных замечаний в отношении
откладываемого распространения обновления.
     1. Концепция репликации в системе с откладываемым распространением
        обновления может рассматриваться как ограниченное воплощение идеи снимков.
     2. Одна из причин (возможно, самая главная) использования в программных продук-
        тах откладываемого распространения обновления заключается в том, что для об-
        новления всех реплик до завершения транзакции требуется поддержка протокола
        двухфазной фиксации, для которого, в свою очередь, требуется исправность всех
        соответствующих узлов и их готовность к запуску во время выполнения
        транзакции, что отрицательно влияет на производительность. Такое положение
        дел характеризуется появлением в печати статей с загадочными заголовками типа
        "Репликация или двухфазная фиксация". Причем их загадочность вызвана тем,
        что сравниваются преимущества двух совершенно разных подходов.

     Управление восстановлением
     Управление восстановлением в распределенных системах обычно основано на
протоколе двухфазной фиксации (или некотором варианте этого протокола). Поддержка
двухфазной фиксации необходима в любой среде, в которой одна транзакция может
взаимодействовать с несколькими автономными администраторами ресурсов. Однако она
особенно важна в распределенной системе, поскольку администраторы ресурсов, т.е.
локальные СУБД, действуют на разных узлах и, следовательно, автономны.
     Здесь необходимо отметить несколько важных особенностей.
     1. Стремление к "независимости от центрального узла" означает, что функция коор-
        динатора не должна присваиваться ни одному из узлов сети, вместо этого она
        должна выполняться для разных транзакций различными узлами. Обычно она
        выполняется узлом, на котором данная транзакция была запущена. Таким
        образом, каждый узел должен для одних транзакций выполнять роль узла-
        координатора, а для других - узла-участника.
     2. При двухфазной фиксации требуется, чтобы координатор обменивался данными с
        каждым узлом-участником, что, в свою очередь, означает большее количество со-
        общений и больше накладных расходов.
     3. Если узел Y действует как участник процесса двухфазной фиксации, координи-
        руемого узлом X, то узел Y должен выполнять любые действия, предписываемые
        узлом X (например, завершение или отмену выполнения транзакции). При этом
        неизбежна утрата локальной автономности.
     4. В идеальной ситуации, конечно, хотелось бы, чтобы процесс двухфазной фикса-
        ции продолжался несмотря на неисправность сети или отдельных узлов либо был
        устойчив по отношению к любым возможным видам неисправности. К сожале-
        нию, легко заметить, что эта проблема неразрешима в принципе, т.е. не существу-
        ет никакого конечного протокола, который мог бы гарантировать, что все агенты
        одновременно завершат выполнение успешной транзакции либо отменят выпол-

                                                                                     35