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