Транзакции

Содержание

Слайд 2


Параллельное выполнение транзакций

Параллельное выполнение транзакций

Слайд 3

Основные проблемы при параллельном выполнении транзакций:
Пропавшие изменения.
Проблемы промежуточных данных.
Проблемы несогласованных данных.
Проблемы строк-призраков

Основные проблемы при параллельном выполнении транзакций: Пропавшие изменения. Проблемы промежуточных данных. Проблемы
(строк-фантомов).

Слайд 4

Правила выполнения процедуры согласованного выполнения параллельных транзакций:
В ходе выполнения транзакции пользователь видит

Правила выполнения процедуры согласованного выполнения параллельных транзакций: В ходе выполнения транзакции пользователь
только согласованные данные. Пользователь не должен видеть несогласованных промежуточных данных.
Когда в БД две транзакции выполняются параллельно, то СУБД гарантированно поддерживает принцип независимого выполнения транзакций, который гласит, что результаты выполнения транзакций будут такими же, как если бы вначале выполнялась транзакция 1, а потом транзакция 2, или наоборот, сначала транзакция 2, а потом транзакция 1.

Слайд 5

Такая процедура называется сериализацией транзакций. Фактически она гарантирует, что каждый пользователь (программа),

Такая процедура называется сериализацией транзакций. Фактически она гарантирует, что каждый пользователь (программа),
обращающаясь к базе данных, работает с ней так, как будто не существует других пользователей (программ), одновременно с ним обращающихся к тем же данным.

Слайд 6

Для поддержки параллельной работы транзакций строится специальный план.
План (способ) выполнения набора транзакций

Для поддержки параллельной работы транзакций строится специальный план. План (способ) выполнения набора
называется сериальным, если результат совместного выполнения транзакций эквивалентен результату некоторого последовательного выполнения этих же транзакций.

Слайд 7

Наиболее распространенным механизмом, который используется коммерческими СУБД для реализации на практике сериализации

Наиболее распространенным механизмом, который используется коммерческими СУБД для реализации на практике сериализации транзакций является механизм блокировок.
транзакций является механизм блокировок.

Слайд 8

Самый простой вариант — это блокировка объекта на все время действия транзакции. В

Самый простой вариант — это блокировка объекта на все время действия транзакции.
момент начала работы с любым объектом этот объект блокируется транзакцией, которая с ним начала работу, и он становится недоступным всем другим транзакциям до окончания транзакции, заблокировавшей («захватившей») данный объект. После окончания транзакции все заблокированные ею объекты разблокируются и становятся доступными другим транзакциям. Если транзакция обращается к заблокированному объекту, то она остается в состоянии ожидания до момента разблокировки этого объекта, после чего она может продолжать обработку данного объекта. 

Слайд 9

Типы конфликтов между двумя параллельными транзакциями. Можно выделить следующие типы: - W-W —

Типы конфликтов между двумя параллельными транзакциями. Можно выделить следующие типы: - W-W
транзакция 2 пытается изменять объект, измененный незакончившейся транзакцией 1; - R-W — транзакция 2 пытается изменять объект, прочитанный незакончившейся транзакцией 1; - W-R — транзакция 2 пытается читать объект, измененный незакончившейся транзакцией 1.

Слайд 10

Режимы блокировок:
- совместный режим блокировки — нежесткая, или разделяемая, блокировка, обозначаемая как

Режимы блокировок: - совместный режим блокировки — нежесткая, или разделяемая, блокировка, обозначаемая
S (Shared). Этот режим обозначает разделяемый захват объекта и требуется для выполнения операции чтения объекта. Объекты, заблокированные таким образом, не изменяются в ходе выполнения транзакции и доступны другим транзакциям также, но только в режиме чтения;

Слайд 11

Режимы блокировок:
- монопольный режим блокировки — жесткая, или эксклюзивная, блокировка, обозначаемая как

Режимы блокировок: - монопольный режим блокировки — жесткая, или эксклюзивная, блокировка, обозначаемая
X (eXclusive). Данный режим блокировки предполагает монопольный захват объекта и требуется для выполнения операций занесения, удаления и модификации. Объекты, заблокированные данным типом блокировки, фактически остаются в монопольном режиме обработки и недоступны для других транзакций до момента окончания работы данной транзакции.

Слайд 12

Правила совместимости захватов одного объекта разными транзакциями:

Правила совместимости захватов одного объекта разными транзакциями:

Слайд 13

Применения разных типов блокировок приводит к проблеме тупиков. Проблема тупиков возникла при

Применения разных типов блокировок приводит к проблеме тупиков. Проблема тупиков возникла при
рассмотрении выполнения параллельных процессов в операционных средах и также была связана с управлением разделяемыми (совместно используемыми) ресурсами.
Пример

Слайд 14

Пусть транзакция А сначала жестко блокирует таблицу 1, а потом жестко блокирует

Пусть транзакция А сначала жестко блокирует таблицу 1, а потом жестко блокирует
таблицу 2. Транзакция В, наоборот, сначала жестко блокирует таблицу 2, а потом жестко блокирует таблицу 1. Если обе эти транзакции начали работу одновременно, то после выполнения операций модификации первыми объектами каждой транзакции они обе окажутся в бесконечном ожидании: транзакция А будет ждать завершения работы транзакции В и разблокировки таблицы 2, а транзакция В также безрезультатно будет ждать окончания работы транзакции А и разблокировки таблицы 1

Слайд 15

Основой обнаружения тупиковых ситуаций является построение (или постоянное поддержание) графа ожидания транзакций.
Граф

Основой обнаружения тупиковых ситуаций является построение (или постоянное поддержание) графа ожидания транзакций.
ожидания транзакций может строиться двумя способами.
Граф ожидания — это направленный граф, в вершинах которого расположены имена транзакций.
Если транзакция А ждет окончания транзакции В, то из вершины А в вершину В идет стрелка. Дополнительно стрелки могут быть помечены именами заблокированных объектов и типом блокировки. 

Слайд 16

В лекциях профессора С. Д. Кузнецова приводится несколько иной принцип построения графа

В лекциях профессора С. Д. Кузнецова приводится несколько иной принцип построения графа
ожидания.
В этом случае граф ожидания транзакций строится в виде ориентированного двудольного графа, в котором существует два типа вершин — вершины, соответствующие транзакциям, и вершины, соответствующие объектам захвата. В этом графе существует дуга, ведущая из вершины-транзакции к вершине-объекту, если для этой транзакции существует удовлетворенный захват объекта. В графе существует дуга из вершины-объекта к вершине-транзакции, если транзакция ожидает удовлетворения захвата объекта.

Слайд 17

Для распознавания тупика здесь, так же как и в первом методе, производится

Для распознавания тупика здесь, так же как и в первом методе, производится
построение графа ожидания транзакций и в этом графе ищутся циклы, затем они удаляются.

Слайд 18

Для обеспечения сериализации транзакций синхронизационные захваты объектов, произведенные по инициативе транзакции, можно

Для обеспечения сериализации транзакций синхронизационные захваты объектов, произведенные по инициативе транзакции, можно
снимать только при ее завершении. Это требование порождает двухфазный протокол синхронизационных захватов — 2PL(two phase lock) или 2РС (two phase commit). В соответствии с этим протоколом выполнение транзакции разбивается на две фазы: - первая фаза транзакции — накопление захватов; - вторая фаза (фиксация или откат) — освобождение захватов.

Слайд 19

В языке SQL введен оператор явной блокировки таблицы, который позволяет точно задать

В языке SQL введен оператор явной блокировки таблицы, который позволяет точно задать
тип блокировки для всей таблицы. Синтаксис операции блокировки имеет вид:
LOCK TABLE имя_таблицы IN {SHARED | EXCLUSIVE} MODE
Имеет смысл блокировать таблицу полностью, когда выполняется операция множественной модификации одной таблицы, то есть когда в ней изменяется большое количество строк. Эта операция иногда называется пакетным обновлением.
Имя файла: Транзакции.pptx
Количество просмотров: 126
Количество скачиваний: 0