Слайд 2: Мониторы обработки транзакций
Мониторы обработки транзакций (Transaction Processing Monitor - TPM) - программные системы (которые часто относят к категории middleware), обеспечивающие эффективное управление информационно-вычислительными ресурсами в распределенной системе. Они представляют собой гибкую, открытую среду для разработки и управления мобильными приложениями, ориентированными на оперативную обработку распределенных транзакций. Мониторы обработки транзакций.
Слайд 3: Роль транзакции
Транзакция играет важную роль в механизме обеспечения целостности БД. Ограничения целостности непосредственно проверяются по завершению очередной транзакции. Если условия ограничений целостности выполняются, то транзакция фиксируется, в противном случае происходит откат транзакции. Кроме ограничений целостности механизм транзакций оказался очень полезным для практической реализации одного из основных принципов распределенных пользовательских систем, а именно изолированности пользователей. Роль транзакции
Слайд 4: Издержки транзакции
Когда от разных пользователей одновременно поступают транзакции, монитор транзакций обеспечивает специальную технологию изоляции, чтобы избежать нарушения согласованного состояния данных и других издержек совместной обработки данных. К числу таких издержек относятся: 1) потерянные изменения 2) грязные данные 3) неповторяющиеся чтения. Издержки транзакции
Слайд 5: 1) потерянные изменения
Потерянные изменения возникают, когда две транзакции изменяют одновременно один и тот же объект БД. Если происходит откат второй транзакции, то отменяются все изменения, внесенные первой транзакцией. В результате первая транзакция не видит своих изменений данных. Способом преодоления таких ситуаций является блокировка данных – запрет на изменение данных любой другой транзакцией до завершения первой транзакции. 1) потерянные изменения
Слайд 6: 2) грязные данные
“Грязные данные” возникают, когда одна транзакция изменяет объект БД, а другая в это время читает те же данные. В этом случае, если первая транзакция еще не завершена, то вторая транзакция может видеть несогласованные данные, т.е. “грязные”. Способом недопущения таких ситуаций является блокировка данных. 2) грязные данные
Слайд 7: 3) неповторяющиеся чтения
Неповторяющиеся чтения возникают, когда одна транзакция читает какой-либо объект БД, а другая до завершения первой его изменяет и успешно фиксируется. При повторном чтении объекта первой транзакцией, она видит его в другом состоянии, т.е. чтение не повторяется. Способом недопущения подобных ситуаций является запрет изменения объекта любой другой транзакцией, пока первая транзакция не закончила чтение. 3) неповторяющиеся чтения
Слайд 8: Сериализация транзакций
Механизм изоляции транзакций и преодоление ситуаций несогласованной обработки данных основывается на технике, которая называется серализация транзакций. Способ выполнения совокупности транзакций называется сериальным, если результат совместного выполнения транзакций эквивалентен результату последовательного их выполнения. Сериализация транзакций
Слайд 9
Существуют два различных подхода сериализации транзакций: I ) синхронизационные захваты (блокировки) объектов БД; II ) временные метки объектов БД.
Слайд 10: I ) синхронизационные захваты (блокировки) объектов БД;
Здесь существуют два режима захватов: 1) совместный режим ( Shared ) 2)монопольный режим ( eXclusive ). I ) синхронизационные захваты (блокировки) объектов БД;
Слайд 11: 1) совместный режим ( Shared )
При совместном режиме осуществляется разделяемый захват, требующий только операций чтения (захват по чтению). 1) совместный режим ( Shared )
Слайд 12: 2) монопольный режим ( eXclusive )
При монопольном режиме осуществляется неразделяемый захват, требующий операции обновления данных (захват по записи). 2) монопольный режим ( eXclusive )
Слайд 13: Двухфазный протокол синхронизационных захватов объектов БД
Выполнение транзакций происходит в два этапа. На первом этапе перед выполнением любой операции транзакция запрашивает и накапливает захваты необходимых объектов. После получения и накопления необходимых захватов осуществляется вторая фаза – фиксация изменений (или откат по соображениям целостности данных) и освобождение захватов. При построении сериальных планов допускается совмещение только по чтению, в остальных случаях транзакции должны ждать, когда необходимые объекты освободятся. Двухфазный протокол синхронизационных захватов объектов БД.
Слайд 14: Гранулирование” объектов захвата
– более изощренные стратегии сериализации транзакций. Расширяется номенклатура синхронизационных режимов захватов, например, в совместном режиме по чтению может быть захвачен целиком файл или отдельные его страницы, в другом случае может быть захвачена таблица, страница или несколько записей. “Гранулирование” объектов захвата
Слайд 15: Недостатки синхронизационных захватов
- возникновение тупиковых ситуаций ( Deadlock ). Предположим, одно транзакция установила монопольный захват одного объекта, а другая – монопольный захват второго объекта. Для осуществления полного набора своих операций первой транзакции нужен еще второй объект, а второй – первый объект. Ни одна из транзакций не может закончить первую фазу, т.е. накопить все необходимые захваты. Недостатки синхронизационных захватов.
Слайд 16
- Непростой проблемой является автоматическое обнаружение таких тупиковых ситуаций и их разрешение. Распознавание тупиков основывается на построении и анализе графа ожиданий транзакций. Применение такого механизма распознавания тупиков увеличивает накладные расходы при выполнении транзакций и снижает производительность обработки данных. - Также проблемой является алгоритм разрушения тупиков. Такие алгоритмы основываются на выборе транзакции-жертвы. В качестве жертвы выбирается или самая дешевая транзакция в смысле затрат на выполнение, или транзакция с наименьшим приоритетом.
Слайд 17: II) Временные метки объектов БД
Суть этого метода заключается в том, что каждой транзакции приписывается временная метка, соответствующая началу выполнения транзакции. При выполнением операции над объектом транзакция помечает его своей меткой и типом операции (чтение или изменение). II) Временные метки объектов БД.
Слайд 18
Если другой транзакции требуется операция над помеченным объектом, то выполняются действий по следующему алгоритму: если первая транзакция уже закончилась, то вторая помечает объект своей меткой и выполняет все требуемые операции; если первая транзакция не закончилась, то проверяется конфликтность операций (конфликтно любое сочетание, кроме чтение-чтение);
Слайд 19
если операции неконфликтны, то они выполняются для обеих транзакций, а объект помечается более поздней транзакцией; если операции конфликтны, то происходит откат более поздней транзакции и выполняются операции более ранней транзакции. Поскольку при таком алгоритме конфликтность транзакций определяется более грубо, метод временных меток вызывает более частые откаты транзакций. Достоинством метода является отсутствие тупиков и, следовательно отсутствие накладных расходов на их распознавание и разрушение.