Модели транзакций

Ниже перечислены основные преимущества модели вложенных транзакций.

Модульность. Транзакция может быть разложена на произвольное количество субтранзакций, что способствует повышению степени распараллеливания обработки и расширяет возможности восстановления.

Создание дополнительной степени детализации в механизмах управления параллельным выполнением и восстановлением. Введение нового уро

вня субтранзакций, помимо уровня основных транзакций.

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

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

Табл. 2. Пример вложенной транзакции

2.3Хроники

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

Концепция хроник (sagas), которая была введена Гарсия-Молина (Garsia-Molina) и Салемом (Salem) в 1987 году, построена на использовании понятия компенсирующих транзакций. СУБД гарантирует, что либо все входящие в хронику транзакции будут успешно завершены, либо будут запущены компенсирующие транзакции, необходимые для устранения достигнутых частичных результатов. В отличие от метода вложенных транзакций, допускающего произвольный уровень вложения, метод хроник разрешает наличие единственного уровня вложения. Более того, для каждой выделенной субтранзакции должна существовать соответствующая компенсирующая транзакция, которая будет семантически правильно аннулировать результаты, достигаемые с помощью данной субтранзакции. Таким образом, если имеется хроника, состоящая из последовательности n транзакций Т1, Т2, ., Тn с соответствующим набором компенсирующих транзакций С1, C2, ., Cn, то окончательный результат выполнения хроники будет определяться одной из приведенных ниже последовательностей транзакций.

1.T1, Т2, …, Tn — если вся транзакция была успешно завершена.

2.T1, T2, ., Ti, Сi-1, ., C2, С1 — если выполнение субтранзакции Тi было аварийно прекращено.

Поэтому, если обратиться к примеру с резервированием места в гостинице, описанному выше, то при подготовке соответствующей хроники потребуется изменить структуру транзакции с целью удаления вложенной транзакции бронирования авиабилетов: T3, T4, T5, T6.

Вошедшие в хронику субтранзакции представляют собой лист-узлы транзакции верхнего уровня, приведенной в табл. 2. Не составляет особого труда подготовить и компенсирующие субтранзакции, предназначенные для отмены заказа на авиабилеты, резервирования номера в гостинице и проката автомобиля.

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

2.4 Модель многоуровневых транзакций

Модель вложенных транзакций, описанная в разделе 2.1, требует, чтобы процесс фиксации субтранзакций выполнялся снизу вверх, в направлении транзакции верхнего уровня. Поэтому данную модель принято называть моделью закрытых вложенных транзакций. Это позволяет подчеркнуть, что свойство неразрывности в транзакциях сохраняется до самого верхнего уровня. В противоположность этому, существует и модель открытых вложенных транзакций, в которой неразрывность нарушается и частичные результаты выполнения субтранзакций могут быть доступны вне транзакции. Примером модели открытых вложенных транзакций является модель хроник, рассматриваемая в предыдущем разделе.

Одним из вариантов модели открытых вложенных транзакций является модель многоуровневых транзакции, в которой дерево субтранзакций является сбалансированным. Узлы одного и того же уровня дерева соответствуют операциям одного и того же уровня абстракции в СУБД. Ребра древовидного графа модели многоуровневых транзакций моделируют реализацию операции посредством последовательности операций более низкого уровня. Уровни n-уровневой транзакции обозначаются как L0, L1, …, Ln, где L0 — самый низкий уровень дерева, a Ln — корень дерева. Методы обработки обычных плоских транзакций гарантируют, что на самом низком уровне (L0) конфликты будут отсутствовать. Основная концепция модели многоуровневых транзакций состоит в том, что две операции на уровне Li могут не конфликтовать, даже если их реализации на следующем, более низком уровне Li-1 конфликтуют. Поскольку в ней используется информация о конфликтах на конкретном уровне, модель многоуровневых транзакций позволяет достичь более высокой степени параллельности по сравнению с моделями обработки плоских транзакций.

2.5 Модели рабочих потоков

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

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

Страница:  1  2  3  4 


Другие рефераты на тему «Программирование, компьютеры и кибернетика»:

Поиск рефератов

Последние рефераты раздела

Copyright © 2010-2024 - www.refsru.com - рефераты, курсовые и дипломные работы