Spec-Zone.ru › MariaDB

Обнаружение тупиковых ситуаций Aria двухэтапного типа

Описание

Двигатель хранения Aria может автоматически обнаруживать и обрабатывать тупиковые ситуации (см. статью о тупиковых ситуациях в Википедии).

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

  • deadlock_search_depth_long
  • deadlock_search_depth_short
  • deadlock_timeout_long
  • deadlock_timeout_short

Как это работает

Если Aria не может получить блокировку, возможно, возникла тупиковая ситуация. Существует два основных способа обнаружения фактического возникновения тупика. Первый — поиск в графе ожиданий (см. граф ожиданий в Википедии), а второй — просто подождать и позволить тупиковой ситуации проявиться. Aria Two-step Deadlock Detection использует комбинацию обоих методов.

Во-первых, если запрос на блокировку не может быть удовлетворен немедленно, мы проводим короткий поиск в графе ожиданий с небольшой глубиной поиска, как настроено переменной deadlock_search_depth_short. У нас есть предел глубины, потому что граф (теоретически) может быть произвольно большим, и мы не хотим проводить рекурсивный поиск на произвольно большой глубине. Этот начальный, короткий поиск очень быстрый, и большинство тупиковых ситуаций будет обнаружено сразу. Если при коротком поиске циклов тупика не найдено, система ждет заданное время, указанное в deadlock_timeout_short, чтобы посмотреть, будут ли устранены конфликты блокировок и блокировка может быть предоставлена. Предположим, что этого не произошло и запрос на блокировку все еще ожидает, система переходит к второму этапу, который повторяет процесс, но на этот раз на большей глубине, используя deadlock_search_depth_long. Если тупиковая ситуация не обнаружена, она ждет deadlock_timeout_long и выходит за пределы времени ожидания.

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

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

© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/aria-two-step-deadlock-detection/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API