Введение в базы данных Ограничения, присущие файловым системам


Решение проблем параллелизма с применением механизма блокировок



Download 0,92 Mb.
bet36/44
Sana08.06.2022
Hajmi0,92 Mb.
#642978
TuriЛекция
1   ...   32   33   34   35   36   37   38   39   ...   44
Bog'liq
Лекция 1

8.3 Решение проблем параллелизма с применением механизма блокировок
Потеря результатов обновления возникает в ситуации, когда две транзакции одновременно читают и изменяют одну и ту же запись в БД. Причем одна транзакция записывает в строку БД свое значение, например, y1, а вторая транзакция вносит в эту же строку БД свои изменения, например, y2. В результате фиксации более поздней транзакции строка БД будет содержать значение, которая внесла именно эта транзакция, а ранее закончившаяся транзакция никогда не увидит тех значений, которые вносила она в строку БД, то есть ее значения становятся пропавшими.
Естественно, она противоречит требованию изолированности пользователей. Чтобы избежать такой ситуации в транзакции 1 требуется, чтобы до завершения транзакции 1 никакая другая транзакция не могла изменять объект.
Таблица 8.2 - Потеря результата обновления в момент времени t6

Транзакция 1

Время

Транзакция 2

S-блокировка tbl1 (успешна)

t1


SELECT f2 (f2=40)
FROM tbl1 WHERE f1=1;

t2



t3

S-блокировка tbl1 (успешна)


t4

SELECT f2 (f2=40)
FROM tbl1 WHERE f1=1;

X-блокировка tbl1 отменяется

t5


Ожидание …

t6

X-блокировка tbl1 отменяется

Ожидание …

t7

Ожидание …

Операция обновления объекта tbl1 для транзакции 1 в момент времени t5 не будет выполнена, так как она является запросом, требующим X-блокировки строки tbl1, а этот запрос вступает в конфликт с S-блокировкой, заданной транзакцией 2. Таким образом, транзакция 1 переходит в состояние ожидания. По аналогичным причинам транзакция 2 переходит в состояние ожидания в момент времени t7. Как видим, блокировка не решает проблемы потери результатов обновления, более того, возникает новая проблема, которая называется тупиком.
Незафиксированная зависимость (чтение "грязных данных") возникает, если одна транзакция выполняет чтение некоторой строки таблицы БД, которая в данный момент обновляется другой транзакцией, но это обновление еще не зафиксировано. Первая транзакция выполнила чтение «грязных» данных, которых нет и не было в базе данных в результате аннулирования изменения более поздним откатом транзакции второй транзакции.
Проблема незафиксированной зависимости разрешается за счет некоторого увеличения времени работы транзакции 2, ожидающей снятия блокировки транзакцией 1. 
Таблица 8.3 - Разрешение проблемы незафиксированной зависимости (грязные данные)


Download 0,92 Mb.

Do'stlaringiz bilan baham:
1   ...   32   33   34   35   36   37   38   39   ...   44




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish