Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Алгоритм проверки сериализуемости расписания.
Алгоритм построения последовательности транзакций начинается с создания узла в графе для каждой транзакции. Пусть и – транзакции, которые блокируют один и тот же элемент (в разное время). Пусть FIRST() – первый из элементов, блокируемых транзакцией . При независимости FIRST() и FIRST() (ни один не является потомком другого), протокол для дерева гарантирует, что и не блокируют общего узла и и . Если FIRST() является предком FIRST(), то: если блокирует FIRST() перед тем как это делает , строим ; в противном случае . Пример: {продолжение}
ЗАЩИТА ОТ ОТКАЗОВ. До сих пор предполагалось, что любая транзакция используется без сбоев. На практике различные обстоятельства могут препятствовать её завершению: 1) Отказ системы. В этом случае все активные транзакции не способны завершить свою работу; возможно даже аннулирование результатов уже завершенных транзакций (они читали значения, записанные транзакциями, которые еще не завершились). В этом случае необходимо найти множество транзакций, которые следует аннулировать, чтобы возвратить систему в непротиворечивое состояние; и удостовериться, что такое состояние существует (меры 1-5). 2) Исполнение транзакции может быть принудительно прекращено до её завершения. Так, если система обнаружила тупик, то транзакция, которая явилась его причиной, может быть аннулирована. Ошибка в транзакции (деление на 0) также может быть причиной для аннулирования транзакции (мера 4). Меры для восстановления БД. 1. Копии БД для восстановления. Несколько копий, хранятся в разных местах. Служебная программа для копирования сама должна быть транзакцией, которая блокирует для чтения все элементы в БД. 2. Журнал. Используется при восстановлении непротиворечивой ситуации, возникшей в результате выполнения некоторого числа транзакций, завершенных после создания последней копии. Записи журнала содержат: 1) уникальный идентификатор транзакции, вызывающей изменения; 2) старое значение элемента; 3) новое значение элемента; 4) моменты времени, характеризующие главные этапы хода выполнения транзакции: начало, конец, точка фиксации транзакции. 3. Имея дело с транзакциями, для которых нужно производить рестарт или аннулирование, удобно оперировать понятиями зафиксированных и незафиксированных транзакций.
Транзакция считается зафиксированной, если все вычисления, сделанные транзакцией в её рабочем пространстве, закончены, и копии результатов её исполнения записаны в безопасное место, лучше журнал. Используется также двухфазная фиксация: 1) Транзакция не может осуществить запись в БД до своей фиксации. 2) Транзакция не будет зафиксирована до тех пор, пока она не запишет все произведённые ею изменения элементов в журнал. Первая фаза представляет собой запись данных в журнал; вторая – запись тех же самых даных в БД. Если все транзакции следуют двухфазному протоколу блокирования, а разблокирование осуществляется только после их фиксации, то ни одна транзакция не сможет прочитать из БД значение, записанное незафиксированной транзакцией. В случае отказа системы имеется возможность просмотреть журнал и провести рестарт всех зафиксированных транзакций, у которых не было возможности записать свои значения в БД. Если отказ системы сопровождается разрушением данных в БД, то нужно сделать рестарт всех транзакций, зафиксированных с тех пор, как была сделана последняя копия для восстановления. Заметим, что в результате отказа системы некоторые элементы могут остаться заблокированными в зафиксированных или незафиксированных транзакциях. Снимать такие блокировки должна программа восстановления. 4. Менее серьезным, чем сбои, является неудачное исполнение отдельной транзакции, когда она, например, приводит к тупику или прерывается по какой-либо причине. В журнал должна быть сделана отметка, что данная транзакция аннулирована.
|
|||||
Последнее изменение этой страницы: 2017-01-25; просмотров: 151; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.129.13.201 (0.007 с.) |