Тема_9 (1122360), страница 8
Текст из файла (страница 8)
Базы данных109УправлениМетоды сериализации транзакций (75)Версионные методы (12)Версионный вариант двухфазного протокола синхронизационных блокировок (3)Для реализации такогоповедения используютсятри типа блокировок:RL (Read Lock) – в этомрежиме блокируетсялюбой объект базы данных o перед выполнениемоперации чтения его текущей версииудержание этой блокировки до конца транзакциигарантирует, что при повторном чтении объекта o будетпрочитана та же версия этого объекта03.12.2009С.Д.Кузнецов. Базы данных110УправлениМетоды сериализации транзакций (76)Версионные методы (13)Версионный вариант двухфазного протокола синхронизационных блокировок (4)WL (Write Lock) – в этомрежиме блокируетсялюбой объект базыданных o передвыполнением операции,приводящей к созданиюновой (незафиксированной) версии этого объектаудержание этой блокировки до конца транзакциигарантирует, что в любой момент времени будетсуществовать не более одной незафиксированнойверсии любого объекта базы данных03.12.2009С.Д.Кузнецов.
Базы данных111УправлениМетоды сериализации транзакций (76)Версионные методы (13)Версионный вариант двухфазного протокола синхронизационных блокировок (4)CL (Commit Lock) –блокировкаустанавливается во времявыполнения операцииCOMMIT транзакции изатрагивает любой объектбазы данных, новую версию которого создала даннаятранзакцияудовлетворение этой блокировки для даннойтранзакции гарантирует, что завершились всетранзакции, читавшие текущие версии объектов, новыеверсии которых были созданы при выполнении даннойтранзакции, и, следовательно, их можно заменить03.12.2009С.Д.Кузнецов.
Базы данных112УправлениМетоды сериализации транзакций (77)Версионные методы (14)Версионный вариант двухфазного протокола синхронизационных блокировок (5)Как видно, операция чтения может блокироваться только навремя фиксации транзакции, заменяющей текущую версиютребуемого объекта базы данныхДля выполнения операции записи требуетсядолговременная монопольная блокировка соответствующегообъекта базы данных, которая, однако, в этом случаесовместима с блокировкой этого же объекта по чтению поскольку в действительности блокируются разные версииэтого объектаИ, конечно, как и во всех схемах сериализации транзакцийна основе блокировок, здесь возможны синхронизационныетупики03.12.2009С.Д.Кузнецов. Базы данных113УправлениМетоды сериализации транзакций (78)Версионные методы (15) Версионно-блокировочный протоколсериализации транзакций для поддержки только читающих транзакций (1)Гибридный протокол, поддерживающийэффективное выполнение транзакций, неизменяющих состояние базы данныхПри применении этого протокола приобразовании каждой транзакции явноуказывается ее тип –Multiversion Protocol for Read-Only Transactions, ROMVтолько читающая (read-only) илиизменяющая (update) транзакцияВ только читающих транзакциях допускаетсяиспользование только операций чтения объектовбазы данных, а в изменяющих транзакциях –операций и чтения, и записи.03.12.2009С.Д.Кузнецов.
Базы данных114УправлениМетоды сериализации транзакций (70)Версионные методы (16) Версионно-блокировочный протоколсериализации транзакций для поддержки только читающих транзакций (2)Изменяющие транзакции выполняются всоответствии с обычным протоколом 2PL,т.е. перед выполнением операции чтения или записиобъекта базы данных o этот объект должен бытьзаблокирован в режиме S или X соответственно, иблокировки объектов удерживаются до концаизменяющей транзакцииКаждая операции записи объекта o создает егоновую версию, которая при завершениитранзакции помечается временной меткой,соответствующей моменту фиксации этойтранзакции03.12.2009С.Д.Кузнецов.
Базы данных115УправлениМетоды сериализации транзакций (71)Версионные методы (17) Версионно-блокировочный протоколсериализации транзакций для поддержки только читающих транзакций (3)Каждая только читающая транзакция присвоем образовании получаетсоответствующую временную меткуПри выполнении операции чтения объектабазы данных o транзакция получаетдоступ к версии объекта o, образованнойизменяющей транзакцией, котораяхронологически последней зафиксировалась кмоменту образования данной читающейтранзакции03.12.2009С.Д.Кузнецов.
Базы данных116УправлениМетоды сериализации транзакций (72)Версионные методы (18) Версионно-блокировочный протоколсериализации транзакций для поддержки только читающих транзакций (4)Основным плюсом протокола ROMV посравнению с ранее описанным протоколом2V2PL является принципиальное отсутствиесинхронизационных задержек при выполненииопераций чтения только читающих транзакцийЕсли сравнивать ROMV с MVTO, то онвыигрывает в принципиальном отсутствииоткатов только читающих транзакцийКонечно, при работе изменяющих транзакцийвозможно возникновение синхронизационныхтупиков и откатов, и здесь требуетсяиспользовать обычные методы распознавания иразрушения тупиков03.12.2009С.Д.Кузнецов.
Базы данных117УправлениМетоды сериализации транзакций (73)Версионные методы (19) Версионно-блокировочный протоколсериализации транзакций для поддержки только читающих транзакций (5)При использовании протокола ROMV в базеданных может возникать произвольное числоверсий объектовТребуется создание специального сборщикамусора, который должен удалять ненужныеверсии данныхПростейший сборщик мусора удаляет всенеиспользуемые версии, значения временныхметок которых меньше значения временнойметки старейшей активной только читающейтранзакции03.12.2009С.Д.Кузнецов. Базы данных118УправлениЗаключение (1)В этой лекции описаны основные принципыуправления транзакциями в системахуправления базами данных, различные методы,алгоритмы и протоколы, способствующиедостижению целей управления транзакциямиСледует заметить, что существует достаточноразвитая теория управления транзакциями ссобственными средствами формализациипостановки задач и доказательства корректностиалгоритмовДля обеспечения более простого понимания сутиматериала в него не включены все этиформализмы03.12.2009С.Д.Кузнецов.
Базы данных119УправлениЗаключение (2)В лекции описаны два основных подхода к сериализациитранзакций – на основе синхронизационных блокировок ивременных метокУ каждого из этих подходов имеются свои достоинства инедостатки, но на практике существенно большераспространен метод синхронизационных блокировокВ заключение лекции были рассмотрены расширения этихподходов с применением версий объектов базы данныхСоответствующие алгоритмы и протоколы позволяютуменьшить число потенциальных конфликтов транзакций, нодля их поддержки требуются дополнительные расходывнешней памяти и усложнение общей архитектуры СУБД03.12.2009С.Д.Кузнецов.
Базы данных120Управлени.