Хомоненко А.Д., Цыганков В.М., Мальцев М.Г. - Базы данных. Учебник для высших учебных заведений (6-е изд.) - 2009 (960530), страница 27
Текст из файла (страница 27)
В случае полученияподтверждений о фиксации транзакций от всех участников (командыREADY COMMIT), координатор отправляет всем участникам команду глобальной фиксации транзакции GLOBAL_COMMIT). Если участник не получает от координатора в установленное время команды GLOBAL_COMMIT илиGLOBAL ABORT, то он просто выполняет откат транзакции.Когда некоторый участник требует отката транзакции, то он имеет правовыполнить его немедленно.
По существу каждый участник имеет право выполнить откат своей субтранзакции в любое время до отправки согласия наее фиксацию. Такой тип отката называют односторонним откатом.Действия, которые выполняются в случае возникновения тайм-аутов, описываются протоколом аварийного завершения (termination protocol). Предпринимаемые при этом действия зависят от того, у кого возникло это событие (укоординатора или участника), в каком состоянии был объект, а также какоесообщение было получено. Например, в случае появления тайм-аута на стороне координатора во время ожидания поступления от всех участников уведомлений о принятом глобальном решении по некоторой транзакции, координатор просто повторяет рассылку о принятом решении на те узлы, которыене прислали ожидаемого подтверждения.Действия, которые выполняются отказавшими узлами после перезапуска, описываются протоколом восстановления.
Предпринимаемые действиясистемы после отказа также зависят от обстоятельств, и, главным образом,от этапа обработки транзакции координатором или участником. Пусть, например, отказ произошел у участника в его начальном состоянии (до момента получения им команды PREPARE). Поскольку координатор не может принять решение о глобальной фиксации транзакции в случае, когдахотя бы один узел не отвечает, поэтому для этого участника целесообразновыполнить откат транзакции в одностороннем порядке.4. Информационныесистемыв сетях131Протокол двухфазной фиксации транзакций позволяет управлять процессом обработки распределенных транзакций в достаточно широком диапазонереальных ситуаций. Так, в случае отказа основного управляющего объектакоординатора, у участника имеется возможность обратиться за информацией о принятом глобальном решении к другим участникам взаимодействия.Если же отказал только узел координатора, а все остальные узлы «живы», тоучастники могут выбрать на роль координатора один из имеющихся узлов.Эти процедуры описываются протоколами проведения выборов.
Одним изпростых и эффективных протоколов проведения выборов является протокол,при котором все узлы упорядочены и имеют идентификаторы, а роль координатора выполняет узел с наименьшим идентификационным номером из числа функционирующих в произвольный момент времени. Согласно протоколу, каждый узел должен послать сообщения на узлы с большими порядковыминомерами. Тогда координатором будет тот узел, который не получит сообщений от узлов с меньшими, чем у него порядковыми номерами.Существует несколько способов обмена сообщениями при реализациипротокола двухфазной фиксации транзакций: централизованный (через узелкоординатор), линейный (каждый узел взаимодействует только с узлами,имеющими ближайшие меньшие и большие номера) и распределенный (сообщения пересылаются по схеме «каждый — каждому»). Эти способы имеютсвои достоинства и недостатки, которые влияют на живучесть системы, а также количество рассылаемых сообщений или время принятия решения.Протокол двухфазной фиксации транзакций не гарантирует отсутствиеблокировок в некоторых случаях.
Блокировка, например, может иметь местов случае, когда на некотором узле истек тайм-аут после отправки своего согласия на фиксацию транзакции, но так и не получена информация о принятом глобальном решении от координатора, а те узлы, с которыми данный узелможет обмениваться сообщениями, также не имеют информации о решениикоординатора. Подобные проблемы решаются в усовершенствованном варианте — трехфазном протоколе фиксации транзакций.Протокол трехфазной фиксации транзакций не приводит к блокировкамв условиях отказа узлов, за исключением случая отказа всех узлов. Однакоотказы линий связи могут привести к тому, что на разных узлах будут приняты разные решения, что является нарушением принципа неразрывности глобальной транзакции. Для использования протокола необходимо соблюдениетрех условий: сеть является неразделяемой, всегда доступен по крайней мереодин узел и отказать одновременно могут не более К узлов сети (такие системы называют К-устойчивыми).Основным преимуществом протокола является устранение периода ожидания в состоянии неопределенности с момента подтверждения участниками своего согласия о фиксации транзакции до момента получения от координатора сообщения о фиксации или отмене транзакции.
Для этого в протоколЧасть 1. Основы132построениябазданныхфиксации транзакций введена дополнительная фаза — предфиксации. Такимобразом протокол включает в себя три фазы: голосование, предфиксация транзакции и принятие глобального решения.В целом взаимодействие координатора с участниками происходит следующим образом.
После получения результатов голосования от всех участников координатор рассылает сообщение о предфиксации PRE-COMMIT, извещающее о готовности всех у ч а с т н и к о в з а ф и к с и р о в а т ь р е з у л ь т а т ытранзакции. В ответ на него каждый участник подтверждает получение этогосообщения. После приема подтверждений от всех участников координаторрассылает команду глобальной фиксации транзакции. Обработка ситуации,когда некоторый участник потребовал отката транзакции, выполняется также, как и в протоколе двухфазной фиксации транзакции.Диаграммы переходов для координатора и участника приведены на рис.4.9.
На этапе предфиксации координатор и участники также переходят на некоторое время в состояние ожидания, однако все функционирующие процессы получают информацию о глобальном решении зафиксировать транзакциюеще до того, как первый процесс выполнит фиксацию результатов транзакции. Это позволяет участникам действовать независимо друг от друга в случае отказа.а)б)Рис.
4.9. Диаграммы переходов для протокола трехфазной фиксации транзакций.а) координатор; б) участник4. Информационныесистемыв сетях1334 . 4 . Информационные с и с т е м ыв локальных сетяхЛокальная вычислительная сеть дает пользователю прежде всего возможность более эффективной организации групповых работ и совместного использования аппаратных ресурсов: принтеров, факсов, модемов, сканеров,дисков и т. д., а также программно-информационных ресурсов, в том числебаз данных. Рассмотрим основные схемы организации работы с данными вЛВС,Спектр возможных схем построения информационной системы в ЛВС существенно зависит от возможностей используемых СОС.Основным сервисом современных Л ВС, независимо от типа управления вних (централизованные или одноранговые), является предоставление доступа одного компьютера (компьютера-клиента) к дискам, каталогам (папкам)и файлам другого компьютера (компьютера-сервера).
Так, при обращении квнешнему файлу СОС сначала передает по сети файл (часть файла) в оперативную память компьютера, а по завершении работы с ним при необходимости возвращает обновленную версию. Кроме того, полезной функцией является возможность запуска на компьютере программ, хранящихся на другомкомпьютере.Эти возможности примерно в равной мере предоставляются сетевыми ОСтакими, как Novell NetWare 3.x (4.x), Windows NT и Windows 95/98.
Болееслабые сетевые пакеты и утилиты могут предоставлять доступ к информации без автоматического запуска программ. В этом случае пользовательдолжен сначала скопировать программы и файлы с другого компьютера насвой, после чего запустить программу.Как и на отдельном компьютере, в ЛВС пользователь может управлять БДс помощью средств некоторой СУБД или работая с приложением. В общем случае приложение может выполняться под управлением СУБД или ее ядра, либобыть независимым и выполняться как автономная программа. Для удобства вдальнейшем под СУБД будем понимать любой из этих вариантов.В локальной сети персональных ЭВМ выделяют следующие три вариантасоздания информационной системы:• типа файл-сервер;• типа клиент-сервер;• основанные на технологии ин гранет;Информационные системы типа файл-серверможно строить двумяспособами:• с использованием несетевых СУБД, предназначенных для примененияна отдельной машине;• с использованием сетевых СУ БД, разрабатываемых для применения в ЛВС.Часть 1.
Основы построения134базданныхПод сетевой СУБД здесь понимается система с произвольной моделью данных (не обязательно сетевой), ориентированная на использование в сети.Программы иесетевой СУБД и используемые ею данные могут хранитьсяна компыотере-сервере ( К С ) и па компыотере-клиенте (КК).Запуск и функционирование несетевой СУБД, хранящейся на КК и работающей с локальными данными, не отличается от обычного режима работына отдельной ПЭВМ. Если используемые данные хранятся на КС, файловаясистема сетевой О С «незаметно» для С У Б Д выполняет подгрузку нужногофайла с удаленного компьютера.
Заметим, что не каждая несетевая С У Б Д безпроблем работает в среде любой сетевой ОС.Если несстевая С У Б Д используется несколькими пользователями сети, тоее программы, а также БД или ее часть в целях экономии дисковой памятиэффективнее хранить на КС. Хранимую на КС БД будем называть центральной БД ( Ц Б Д ) , а хранимую на КК БД — локальной БД (ЛБД).
При запускеС У Б Д в таком варианте на каждый КК обычно пересылается полная копияосновной программы С У Б Д и один или несколько файлов Ц Б Д (рис. 4.10)После завершения работы файлы ЦБД должны пересылаться с КК обратнона КС для согласования данных.Существенным недостатком такого варианта применения несетевыхС У Б Д является возможность нарушения целостности данных при одновременной работе с одной БД нескольких пользователей. Поскольку каждая копия С У Б Д функционирует «не зная» о работе других копий СУБД, то ника-ксхранениеСУБДЦБДVкопирование/ГЦБДЛ БД\\КК/А/////физическиесоединения/СУБДвыполнение— копирование данных— копирование программ— связь по управлениюРис.
4.10. Система типа файл-сервер с несетевой СУБД4. Информационныесистемыв сетях135ких мер по исключению возможных конфликтов не принимается. При этомэлементарные операции чтения-записи одних и тех же файлов, как правило,контролирует сетевая ОС.В качестве примеров несетевых СУБД можно назвать первые версии системы dBase III Plus, dBase IY и FoxBase.Сетевые СУБД не имеют указанного недостатка, так как в них предусматривается «контроль соперничества» (concurrency control). Средства контроляпозволяют осуществлять координацию доступа к данным, например, введением блокировок к файлам, записям и даже отдельным полям записей (рис.