Как понизить количество анормальных завершений? — КиберПедия 

Историки об Елизавете Петровне: Елизавета попала между двумя встречными культурными течениями, воспитывалась среди новых европейских веяний и преданий...

История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...

Как понизить количество анормальных завершений?

2017-12-12 286
Как понизить количество анормальных завершений? 0.00 из 5.00 0 оценок
Заказать работу

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

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

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

Диспетчеризация транзакций

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

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

Было изучено множество различных политик назначения приоритетов [79] − как для назначения приоритетов различным классам транзакций, так и транзакциям внутри одного класса. Рассмотрим для примера несколько вариантов политик назначения приоритетов различным классам транзакций:

· оба класса транзакций имеют одинаковый приоритет;

· пользовательские транзакции получают больший приоритет;

· пользовательские транзакции получают меньший приоритет;

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

Поскольку для корректного завершения транзакции необходимо, чтобы использованные ей данные были временно целостными, то полезно ввести понятие директивного срока данных (data-deadline). Директивный срок данных транзакции − это момент времени, по истечении которого временная целостность использованных данных будет нарушена. Естественно, что дальнейшее выполнение этой транзакции будет бесполезной тратой ресурсов, так как она все равно не сможет быть нормально завершена. Следовательно, учет информации о директивных сроках данных транзакций может помочь повысить производительность системы.

Директивный срок данных транзакции T вычисляется согласно следующему алгоритму:

· Старт транзакции Tdata_deadlineT = deadline T.

· Чтение объекта (x, xtimestamp , xavi)

. (4.9.3)

Для того чтобы извлечь реальную пользу из директивных сроков данных, эту информацию можно использовать для назначения приоритетов транзакций. В общем виде несложная формула вычисления приоритета транзакции выглядит так (0<a<1):

priorityT = a * data_deadlineT +(1– a)* deadlineT. (4.9.4)

В зависимости от значения a можно выделить следующие характерные политики распределения транзакций:

· По ближайшему директивному сроку: a=0.

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

· По ближайшему директивному сроку данных: a=1.

Этот алгоритм учитывает только data-deadline транзакции. Согласно этому алгоритму транзакция T1 с большим директивным сроком, но с маленьким data-deadline получит больший приоритет, чем транзакция T2 с меньшим директивным сроком. Следовательно, транзакция T2 может не успеть завершиться по причине пропуска директивный срока, тогда как, если T2 назначить больший приоритет, то и T1 и T2 могут успеть завершиться.

· Гибридный подход:

. (4.9.5)

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

· Пропорционально выполненной работе: a – процент сделанной транзакцией работы.

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

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


Поделиться с друзьями:

Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...

Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...

Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...

Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.008 с.