Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебник ИСПиУ.doc
Скачиваний:
263
Добавлен:
18.09.2019
Размер:
17.33 Mб
Скачать

4.9.16 Приоритет «отложенной» транзакции

Рассмотрим те же политики назначения приоритетов, что и для случая «непосредственной» транзакции.

Назначение приоритета для случая порождения «отложенной» транзакции очень похоже, как и в случае порождения «непосредственной» транзакции. В случае использования DIV и SL методов приоритет отцовской транзакции будет изменяться, когда порождается отложенная транзакция, а в случае использования PD метода нет.

Рассмотрим транзакцию T, которая порождает i-ю отложенную транзакцию в момент времени t. Тогда приоритет породившей транзакции будет следующим:

    • PD метод:

Pt(T)=d(T)

    • DIV метод:

Pt(T)=Pt(T)–Xt( ). (4.9.12)

    • SL метод:

. (4.9.13)

Предположим, что транзакция T породила m отложенных транзакций до своего завершения. Пусть j-ая отложенная транзакция, jm, начинает свою работу в момент времени w (после того, как породившая транзакция закончила свою работу). Тогда приоритет транзакции будет следующим:

    • PD метод:

. (4.9.14)

    • DIV метод:

. (4.9.15)

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

    • SL метод:

. (4.9.16)

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

4.9.17 Заключение

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

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

За последние несколько лет был предложен ряд специализированных протоколов управления транзакциями для систем реального времени, которые учитывают специфику таких систем. Интересно, что в отличие от случая классических СУБД, в системах реального времени «оптимистические» протоколы показывают лучшие результаты по сравнению с «пессимистическими».

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

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

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

В данной теме затронута только часть проблем, связанных с поддержкой целостности данных в СУБД, но многое осталось за ее рамками. В частности, известны попытки использовать другие критерии корректности, отличные от сериализуемости [79], другие наборы свойств транзакций (вместо ACID). Также в системах реального времени большое внимание уделяется формальным методам, используемых для моделирования, спецификации ограничений, проверки корректности [79].