История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...
Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...
Топ:
Определение места расположения распределительного центра: Фирма реализует продукцию на рынках сбыта и имеет постоянных поставщиков в разных регионах. Увеличение объема продаж...
Интересное:
Искусственное повышение поверхности территории: Варианты искусственного повышения поверхности территории необходимо выбирать на основе анализа следующих характеристик защищаемой территории...
Уполаживание и террасирование склонов: Если глубина оврага более 5 м необходимо устройство берм. Варианты использования оврагов для градостроительных целей...
Распространение рака на другие отдаленные от желудка органы: Характерных симптомов рака желудка не существует. Выраженные симптомы появляются, когда опухоль...
Дисциплины:
|
из
5.00
|
Заказать работу |
Содержание книги
Поиск на нашем сайте
|
|
|
|
Конкретные системы реального времени зачастую имеют очень жесткие требования к производительности алгоритмов управления транзакциями и обобщенные подходы им плохо подходят. С другой стороны, такие системы часто имеют ряд уникальных особенностей, которые позволяют придумать специализированный протокол управления транзакциями для этой конкретной системы, который будет показывать лучшие результаты. Обычно это достигается при помощи оптимизации производительности для класса наиболее важных транзакций за счет ухудшения ее для прочих транзакций.
Один из примеров использования этой идеи – деление транзакций на классы сенсорных, порожденных и пользовательских и назначение более высокого приоритета пользовательским транзакциям, как наиболее важным.
Классификация пользовательских транзакций
Обобщая сказанное в предыдущих разделах, можно говорить о следующих атрибутах пользовательских транзакций в базах данных реального времени:
· время прихода в систему;
· период;
· временные ограничения;
· приоритет;
· примерное время выполнения;
· необходимые данные;
· функция полезности.
В зависимости от существования и значений этих атрибутов, транзакции можно классифицировать по следующим критериям:
· типу директивного срока (мягкие, жесткие или крепкие);
· типу поступления в систему (периодические, апериодические);
· типу доступа к данным − предопределенный (только чтение/только запись/обновление) или произвольный (т.е. заранее неизвестный);
· известны ли необходимые данные?
· известно ли примерное время выполнения?
· типу используемых данных: непрерывные, дискретные, оба.
В общем случае существует множество различных классов транзакций. Однако в каждом конкретном случае зачастую можно обойтись всего несколькими из них. Естественно, что общего правила выбора не существует, однако ответ на вопрос «Какие транзакции наиболее критичны и что у них общего?» − это хорошая отправная точка.
СУБД реального времени в оперативной памяти
Посмотрим, как идею оптимизации для отдельных классов транзакций можно применить к одной из специализированных СУБД реального времени.
Рассматриваемая система − специализированная база данных в оперативной памяти, используемая в телефонных сетях. Вообще базы, хранящиеся в оперативной памяти, позволяют значительно ускорить доступ к данным, поскольку не надо обращаться к медленным устройствам постоянного хранения. Поэтому такой подход часто используется в системах с очень высокими требованиями к производительности.
Поскольку доступ к данным в оперативной памяти требует значительно меньше времени, чем при использовании вторичных накопителей, то на этом фоне затраты на поддержку целостности становятся очень заметными.
В нашем случае система имеет очень близкие директивные сроки транзакций, что не позволяет использовать обобщенные алгоритмы. К счастью, у этой системы есть еще ряд особенностей − подавляющее большинство транзакций очень коротки и только читают данные, они же являются наиболее важными и имеют наиболее близкие директивные сроки.
Основная идея оптимизации в данном случае − снизить затраты при обработке коротких и только читающих транзакций. За счет ухудшения производительности при работе с обновляющими транзакциями можно придумать алгоритм, который практически сведет к нулю дополнительные затраты при выполнении только читающих транзакций [79].
Использование сложных моделей транзакций
В предыдущих разделах подразумевалось использование простой модели транзакций, в которой транзакции не зависят друг от друга. Однако в системах реального времени используются и более сложные модели транзакций, например вложенная модель [79].
Для примера мы рассмотрим применение активных баз данных в системах реального времени [79].
Активные базы данных
В отличие от обычных систем управления базами данных системы управления активными базами данных могут выполнять определенные операции при возникновении определенного события. Формально такие системы содержат наборы правил вида Событие-Условие-Действие. В том случае, если произошло данное событие и соответствующее условие истинно, то должно быть выполнено заданное действие.
Примерами событий могут быть COMMIT или ABORT транзакции, операции доступа к данным или внешние события. Условие обычно представляет собой некоторый предикат от текущего состояние базы данных. Действие − это транзакция, которая выполняется в ответ на определенную ситуацию, где ситуация − это комбинация события и условия.
Транзакция, которая вызывает срабатывание правила, называется порождающей транзакцией, а транзакция, которая выполняется согласно этому правилу, называется порожденной. Понятия породившей и порожденной транзакций не являются взаимно исключающимися, т.е. порожденная транзакция может в свою очередь породить новую транзакцию. Транзакция, которая породила хотя бы одну транзакцию, называется активной или отцовской. Активная транзакция ассоциируется с множеством ею порожденных транзакций.
Возможны разные типы связей между породившей и порожденной транзакциями. Наиболее часто по типу связи порожденные транзакции делятся: на непосредственные, отложенные, независимые. Непосредственная и отложенная транзакции выполняются как часть активной транзакции, т.е. для успешного завершения транзакции необходимо, чтобы успешно завершились все ею порожденные непосредственные и отложенные транзакции. Независимая же транзакция выполняется совершенно независимо, и даже если она завершится неудачно, то это никак не отражается на завершении породившей ее транзакции. Непосредственная транзакция начинает выполняться немедленно после порождения, а отложенная только после того, как породившая ее транзакция выполнит свою работу, но до момента фиксации сделанных ею изменений.
|
|
|
Поперечные профили набережных и береговой полосы: На городских территориях берегоукрепление проектируют с учетом технических и экономических требований, но особое значение придают эстетическим...
Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...
Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...
Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьшения длины пробега и улучшения маневрирования ВС при...
© cyberpediasu.com 2017-2026 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!