система приоритетов, в которой приоритет транзакции тем выше, чем
дольше она находится в состоянии ожидания. Альтернативным вариан-
том является использование для ожидающих транзакций очереди, по-
строенной по схеме «первым пришел, первым обслуживается». Однако
чаще всего прибегают к самому простому варианту: выбирают в качестве
жертвы одну из транзакций и просто ее откатывают. Эти действия, несо-
мненно, могут повлиять на эффективность работы системы.
Один из возможных подходов
предупреждения взаимных блокировок
состоит в установлении порядка выполнения транзакций на основе ис-
пользования временных отметок, о чем будет сказано ниже. Были пред-
ложены два возможных алгоритма. Первый алгоритм, получивший на-
звание «ожидание – отмена», требует, чтобы более старые транзакции
ожидали завершения более новых. В противном случае транзакция отме-
няется и перезапускается с той же временной отметкой. Однако рано или
поздно она станет самой старой из активных транзакций и уже не будет
отменена. Второй алгоритм, «отмена – ожидание», использует диамет-
рально противоположный подход: только более новые могут ожидать за-
вершения более старой транзакции. Если более старая транзакция потре-
бует выполнения блокировки элемента данных, уже заблокированного
более новой транзакцией, последняя будет отменена. Иногда для преду-
преждения тупиков система строит граф выполнения транзакций и пыта-
ется заранее определить тупиковые ситуации.
Достарыңызбен бөлісу: