Хомоненко А.Д., Цыганков В.М., Мальцев М.Г. - Базы данных. Учебник для высших учебных заведений (6-е изд.) - 2009 (1084484), страница 27
Текст из файла (страница 27)
Предпринимаемые действиясистемы после отказа также зависят от обстоятельств, и, главным образом,от этапа обработки транзакции координатором или участником. Пусть, например, отказ произошел у участника в его начальном состоянии (до момента получения им команды 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).
Средства контроляпозволяют осуществлять координацию доступа к данным, например, введением блокировок к файлам, записям и даже отдельным полям записей (рис. 4.11).В сетевых СУБД с коллективным использованием файлов БД по-прежнему вся обработка информации производится на КК, а функции КС сводятся к предоставлению большой дисковой памяти. Такой подход нельзясчитать эффективным, так как для обеспечения приемлемой скорости процесса обработки информации КК должен обладать высоким быстродействием и иметь большую емкость оперативной памяти. Кроме того, пересылкакопий файлов БД и команд управления блокировками по линиям связи существенно увеличивает нагрузку на подсистему передачи данных, что снижает общую производительность сети.Примерами сетевых СУБД являются: FoxPro 2.5 для Windows, dBase IY,Paradox 3.5 для DOS.Информационные системы типа клиент-серверотличаются от системтипа файл-сервер прежде всего тем, что программы СУБД функциональноразделены на две части, называемые сервером и клиентом.