Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пособие по БД new.doc
Скачиваний:
11
Добавлен:
18.09.2019
Размер:
687.62 Кб
Скачать

Улучшенные модели транзакций

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

  • Простые типы данных - целые числа, десятичные числа, короткие сим­вольные строки и даты.

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

  • Рассмотрим различные средства разработки баз дан­ных, получивших в последнее время достаточно широкое распространение - инженерные (CAD), технологические (САМ) и программные (CASE). Все они имеют ряд общих характеристик, отличаю­щих их от традиционных приложений баз данных.

  • Создаваемый проект может быть очень большим - вполне возможно, со­стоящим из миллионов частей, часто объединенных во множество взаимо­зависимых подсистем, представляющих собой отдельные проекты.

  • Проект не является статическим объектом и постоянно эволюционирует. При внесении в проект изменения, его следствия часто распространяются на все имеющиеся в проекте подсистемы. Динамическая природа созда­ваемых проектов может означать, что некоторые действия просто не могут быть предусмотрены заранее, в самом начале работы.

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

  • Очень часто для отдельных компонентов проекта рассматривается множе­ство различных альтернативных вариантов, причем каждый раз требуется подготовить новую корректную версию всех его компонентов. Решение по­добных задач требует наличия средств контроля версий и инструментов управления выбираемой конфигурацией.

  • В работу могут быть вовлечены сотни людей, работающих над нескольки­ми параллельными версиями одного крупного проекта. Тем не менее ко­нечный продукт должен быть согласованным и сбалансированным. Иногда такой стиль работы называют кооперативным проектированием. Коопера­ция требует четкого взаимодействия и полной согласованности всех разра­боток, выполняемых параллельно.

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

  • С учетом фактора времени, продолжительные транзакции более чувстви­тельны к отказам. Было бы совершенно неприемлемо отменить выполнение подобной транзакции с потенциальной потерей очень большого объема вы­полненной работы. Следовательно, чтобы минимизировать возможные по­тери, необходимо иметь средства для восстановления того состояния тран­закции, которое она имела незадолго до возникновения отказа.

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

  • Чем дольше выполняется транзакция, тем вероятнее возникновение ситуа­ции взаимной блокировки, когда в системе используется протокол, допус­кающий подобные ошибки. Было показано, что вероятность возникновения взаимной блокировки пропорциональна четвертой степени времени выпол­нения транзакции (Gray, 1981).

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