КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Синхронизационные захваты
Сериализация транзакций Сериализация – параллельное выполнение транзакций, но не произвольных, а в виде набора – сериального плана. Сериализация – выполнение транзакций в соответствие с сериальным планом. Сериальный план соответствует таким действиям, когда результат совместного выполнения транзакций соответствует результату строго последовательного их выполнения. Как транзакции объединить в сериальный план? Существуют ситуации, когда транзакции можно выполнить в любой последовательности вне зависимости от их результатов. Такими неконфликтующими являются только читающие транзакции или транзакции, не конфликтующие по объектам БД. Виды конфликтов между транзакциями: 1. WW – транзакция пытается изменить объект, изменённый незакончившейся транзакцией; 2. WR – транзакция пытается читать объект, изменённый незакончившейся транзакцией; 3. RW – транзакция изменяет объект, прочитанный незакончившейся транзакцией. Учёт конфликтов происходит двумя методами: синхронизационных захватов; временных меток. Любые методы сериализации могут быть рассмотрены в двух вариантах: 1) оптимистическом; 2) пессимистическом. В 1): предположение о том, что конфликтов возникает немного; все результаты изменения сохраняются в рабочей области транзакции, а проверять отсутствие конфликтов и применять все методы по сериализации нужно применять после завершения транзакций. В 2): конфликты возникают часто и методы сериализации, т.е. устранения, нужно применять немедленно при возникновении конфликта. Основой является захват транзакциями объектов БД. Захват состоит в том, что каким-то образом транзакция фиксирует намерение работа с объектом в каком-то режиме, а режим определяется видом операции. Существует два режима: a) совместный S (Shared): требуется, когда транзакция собирается читать объект; b) монопольный X (eXclusive): соответствует операциям занесения, удаления и модификации информации. Если есть транзакция Т, объект БД r, то синхронизация над объектом может проходить либо в совместном режиме, либо в монопольном режиме. При синхронизационных захватах транзакция должна предварительно захватить объект, а потом выполняться. На сколько захваты разными транзакциями одного объекта совместимы друг с другом? Таблица совместимости захватов в разных режимах:
В соответствие с таблицей, если какой-то объект уже закончен, то последующие захваты проверяются по таблице и либо разрешаются, либо запрещаются, т.е. транзакция блокируется, т.к. не может осуществить захват требуемого объекта в требуемом режиме. “Нет” соответствует конфликтам WW, WR, RW. Чтобы это реализовать используется двухфазный протокол синхронизационных захватов (2PL). В соответствие с ним выполнение транзакции разбивается на 2 фазы: I. накопление захватов; II. фиксация/откат и освобождение захватов. При этом важно отметить уровень захвата объектов, т.е. что следует считать объектом захвата. Выделяют несколько логических уровней: – БД; – Файл; –––––––––– – Отношение; |– страница; – Кортеж; – Атрибут; Что из них захватывать? Чем выше уровень захвата, тем меньше возможность организовать параллельную работу. Но чем меньше уровень, тем сложнее обнаруживать конфликты. Наиболее распространённым решением этой проблемы является захват на уровне кортежей или на уровне страниц. Но такие захваты позволяют проникнуть нарушениям целостности. Методом борьбы с этими нарушениями являются гранулированные синхронизационные захваты.
Дата добавления: 2014-12-25; Просмотров: 735; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |