Застосування блокування і проблеми, пов'язані з ним 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Застосування блокування і проблеми, пов'язані з ним



Транзакції вимагають застосування спеціальних модулів (планувальників) і протоколу обробки транзакциій.

Щоб уникнути проблем з розподіленою обробкою використовуються блокування.

Існує два типи блокувань:

Блокування X-типу – повністю блокує доступ до транзакції

Блокування S-типу - це блокування вирішує режим "тільки читання", але транзакцію не можна модифікувати.

У реляційній базі даних найчастіше використовується протокол двофазного блокування 2PL.

Правила приведені нижче:

1. Якщо операції pi(x) можуть виконуватися, блокування застосовується на транзакцію Ti і операція виконується. Якщо операція не може виконуватися, вона поміщається в чергу.

2. Видалення блокування виконується після завершення транзакції.

3. Якщо блокування було видалене з транзакції, транзакцію вже не можна заблокувати.

Згідно правилам є дві фази виконання транзакцій. У першій фазі ставляться блокування, а в другій вони віддаляються. Перша фаза довша другої.

Мал. 10.5.4. Протокол 2PL.

Застосування блокування може призвести до взаємного блокування і зависання. Використання блокування вимушує транзакцію дочекатися звільнення ресурсу. Давайте розглянемо три транзакції:

Транзакція А блокує ресурс X і вимагає доступу до ресурсу Y. Транзакція B блокує доступ до ресурсу Y і запрошує доступ до ресурсу X. Виходить взаємоблокування, і жодна з транзакцій не може завершитися.

Приклади блокувань показані на малюнку:

Мал. 10.5.5. Взаємоблокування транзакцій.

Мал. 10.5.6. Взаємоблокування транзакцій.

 

Взаємоблокування є серйозною проблемою і може вплинути на результат роботи.

Методи боротьби з взаємоблокуваннями:

Метод 1.

Виявлення взаємних блокувань і переривання циклу. Після виявлення взаємних блокувань слідує створення графа очікування і його транзитивне завершення (складність більша, ніж n*n). Переривання циклу відбувається шляхом видалення однієї з конфліктуючих транзакцій і її повторним запуском. Вибір грунтується на різних критеріях: остання, з найменшим робочим навантаженням, з низьким пріоритетом.

Метод 2.

Уникнення взаємних блокувань. Є багато таких методів, наприклад:

Попередній запит ресурсу: перед початком кожна транзакція визначає свої потреби. Зміни не вносяться. Недолік - падіння ефективності паралельного обчислення.

Чекай-помри (wait-die): якщо транзакція намагається дістати доступ до заблокованого ресурсу, вона відміняється. Це не застосовується до діалогових систем, оскільки користувач може бути збентежений потребою багатократного введення даних. Це зменшує продуктивність.



Поделиться:


Последнее изменение этой страницы: 2017-02-07; просмотров: 135; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.133.131.168 (0.006 с.)