Выполнение транзакций, ориентированное на данные

Выявление тупиковых ситуаций


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

В DORA предусматриваются меры для понижения вероятности возникновения тупиковых ситуаций. Всякий раз, когда в некотором потоке управления планируется рассылка действий некоторой фазы транзакции, ставятся защелки на очереди поступающих действий всех исполнителей, которым планируется передать действия, так что рассылка действий происходит атомарным образом. Это гарантирует, что тупиковая ситуация никогда не возникнет между транзакциями с одинаковыми графами потока транзакции. Действительно, между двумя транзакциями с одним и тем же графом потока транзакции мог бы возникнуть тупик, только если бы их конфликтующие запросы обрабатывались в противоположном порядке. Но это невозможно, поскольку рассылка действий выполяется атомарным образом, исполнители обслуживают действия в порядке FIFO (first in – first out, первым обсуживается первое поступившее действие), и локальные блокировки удерживаются до фиксации тразакции. Транзакция, первой поставившая свои действия в очередь, первой и закончится.



Содержание раздела