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

Презентация:



Advertisements
Похожие презентации
Лекция 26 Лекция 26 Параллельное выполнение транзакций. Типы конфликтов. Захваты и блокировки.
Advertisements

Модели транзакций Уровни изолированности пользователей.
Лекция 7. Реализация многопользовательского режима. Транзакции. Важнейшей целью создания БД является организация параллельного доступа многих пользователей.
Обобщенная архитектура СУБД. Область SQL содержит данные связывания, временные буферы, дерево разбора и план выполнения для каждого оператора SQL, Область.
Введение. Цели и задачи. Основные понятия и определения. Требования к базам данных.
Модели транзакций Журнализация и буферизация. Зачем нужна буферизация Если бы запись об изменении базы данных, которая должна поступить в журнал при выполнении.
3 Обработка транзакций в реальном масштабе времени (OLTP - технология)
ОПЕРАЦИОННЫЕ СИСТЕМЫ Ершов Б.Л. Российский государственный торгово-экономический университет ИВАНОВСКИЙ ФИЛИАЛ Кафедра математики, экономической информатики.
Технология хранения, поиска и сортировки информации в базах данных
Определения Банк данных (БнД) это система специальным образом организованных дан­ных - баз данных, программных, технических, языковых, организационно-
Модели транзакций Свойства транзакций. Способы завершения транзакций.
Базы данных в электронных таблицах. Что называется базой данных? Какие примеры баз данных вы знаете? Какие существуют формы представления баз данных?
Лекция 25 Лекция 25 Понятие целостности базы данных. Условия целостности. Транзакции. Обработка транзакций. Свойства транзакций. Модель ANSI/ISO. Назначение.
Параллельное программирование с использованием технологии OpenMP Аксёнов Сергей Владимирович к.т.н., доцент каф.ОСУ ТПУ Лекция 3 Томский политехнический.
ЭТАПЫ ЖИЗНЕННОГО ЦИКЛА БАЗЫ ДАННЫХ. Жизненный цикл БД Это процесс, который начинается с этапа проектирования БД и заканчивается снятием БД с эксплуатации.
Учебная дисциплина «Базы данных и управление ими» для студентов специальности «Профессиональное обучение» Лекция 10 ОРГАНИЗАЦИЯ ПАРАЛЛЕЛЬНОГО.
Выполнила студентка группы ТУ-501 Полозова Ю.О. База данных (БД) представляет собой совокупность структурированных данных, хранимых в памяти вычислительной.
Управление процессами Проблема тупиков. Определения Тупик (тупиковая ситуация, dead lock, clinch) – ситуация в системе, когда один или несколько процессов.
Базы данных MICROSOFT ACCESS. Оглавление Введение Microsoft Access. Основные понятия. Таблицы Связи между таблицами. Формы Запросы Отчёты Создание базы.
СУБД Microsoft Access 2003 РАЗРАБОТКА БАЗЫ ДАННЫХ (Таблицы и связи между ними)
Транксрипт:

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

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

Пропавшие изменения. Эта ситуация может возникать, если две транзакции одновременно изменяют одну и ту же запись в БД. Пример – одновременная продажа мониторов

Проблемы промежуточных данных приложение второго оператора имело доступ к промежуточным данным, которые сформировало первое приложение.

Проблемы несогласованных данных. приложение первого оператора смогло изменить кортеж с данными, который уже прочитало приложение второго оператора.

Проблемы строк-призраков приложение выполнило два одинаковых запроса и получило два разных результата.

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

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

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

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

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

Объекты блокировки Блокировки, называемые также синхронизационными захватами объектов, могут быть применены к разному типу объектов. Таблицы Страницы Записи

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

Правила совместимости захватов считается, что первой блокирует объект транзакция А, а потом пытается получить к нему доступ транзакция В.

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

Взаимная блокировка транзакций

граф ожидания транзакций Эту ситуацию каждая из транзакций обнаружить самостоятельно не может. Ее должна разрешить СУБД. И действительно, в большинстве коммерческих СУБД существует механизм обнаружения таких тупиковых ситуаций. Основой обнаружения тупиковых ситуаций является построение (или постоянное поддержание) графа ожидания транзакций.

Пример графа Т1…Т12 – транзакции А..G – объекты X- жеская блокировка S- мягкая

На диаграмме состояний ожидания видно, что транзакции Т9, Т8, Т2 и ТЗ образуют цикл. Именно наличие цикла и является признаком возникновения тупиковой ситуации. Разрушение тупика начинается с выбора в цикле транзакций так называемой транзакции-жертвы, то есть транзакции, которой решено пожертвовать, чтобы обеспечить возможность Продолжения работы других транзакций.

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

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

двухфазный протокол синхронизационных захватов выполнение транзакции разбивается на две фазы: первая фаза транзакции накопление захватов; вторая фаза (фиксация или откат) освобождение захватов. Синтаксис операции блокировки имеет вид: LOCK TABLE имя_таблицы IN {SHARED | EXCLUSIVE} MODE