More Related Content Similar to Transactions & concurrency control (20) Transactions & concurrency control1. آموخت فکرت را جان آنکه بنام
1
پيشرفتهدادهپايگاه
همروندی و تراکنش
transaction & Concurrency
مدرس:عنایتی دکتررسولفر
دانشجو:اسمعیل یوسفپور
October 2017
Advanced Database
کوزوفیرواحداسالمیادزادانشگاهرپواسمعیلیوسفه
3. 3
سیستممدیریتبانکاطالعاتDBMSدادههارادرونحصاریمحکمقرارمی،دهد
برایاینکهعملیاتیرویآنصورتگیردبایدچهارکنترلمعروفبهACID (
Atomicity , Consistency , Isolation , Durability)رویآنکنترل
شودودرصورتتامیننشدناینشروطعملیاتباشکستروبروخواهدشد.
تراکنش:مجموعهایازعملگرهایبانکاطالعاتمیباشدکهازدیدکاربریکواحدمنطقیکاررا
تشکیلمیدهند،بهعبارتدیگربرنامهایکهبهدادههایذخیرهشدهدستیابیداردوامکانتغییرآنهارا
دارد.تراکنشعبارتاستازعملهایمرتبطبهیکدیگرکهاجرایآنهاتغییریدرپایگاهدادههاایجادمی
کندودارایخواصACIDمیباشد.
تراکنشبانکاطالعاتراازیکحالتدرستبهحالتدرستدیگرانتقالمیدهد.
تراکنشعبارتاستازواحدمنطقیکاردرپایگاهدادههااینواحدلزومایکعملساده(single action)
نیستبلکهمیتوانددنبالهایازعملهایسادهباشد؛اماانجامدرستاینواحدمنطقیکارسببمیشود
تاپایگاهدادههاازیکحالتسازگاربهحالتسازگاردیگردرآید.
تعاريف
تراکنش(Transaction)
پيشرفتهدادهپايگاهکوزوفیرواحداسالمیادزادانشگاهرپواسمعیلیوسفه
1
2
3
3
5. 5
begin T1
read(A);
A:=A-50;
write (A);
read(B);
B:=B+50;
write(B);
end T1
بهعنوانمثالT1یکتراکنشمیباشدکهدرآن
پایگاهدادهمقدارA,Bرابهروزرسانیمیکند
پيشرفتهدادهپايگاه
اگرتراکنشبهطورموفقیتآمیزخاتمهیافتطبق
خاصیتپایاییاثرکارهایآنتراکنشرویبانک
اطالعاتیدایمیوپایدارمیگرددواگربههردلیلی
برخیازدستوراتاجرانشوداثرسایردستوراتاجرا
شدهخنثیمیشود
تراکنش(Transaction)
کوزوفیرواحداسالمیادزادانشگاهرپواسمعیلیوسفه
6. 6
تراکنش رسمي بيان
Oij ε {R, W}
درتراکنشمفروضTi،عملOij(D)نشاندهندهیعملOjازتراکنشTiرویدادهذخیرهشدهیD
درپایگاهدادهاست.بافرضدرنظرگرفتنعملهایتراکنشTiبهخواندنونوشتنوصرفنظراز
عملیاتپردازشیخواهیمداشت:
OSi = {Oij : j>=0}
حالاگرOSiمجموعهیهمهیعملهایتراکنشTiباشد
خواهیمداشت:
Ni ε {A, C}
(A: Abort, C: Commit)
اگرNiنشاندهندهیوضعپایانتراکنشTi
باشدخواهیمداشت:
برایسادگینمایشرسمی،تراکنشگاهتراکنشرافقطبامجموعهیعملهایشنمایشمیدهند:
Ti = {R(D1), R(D2), W(D1), C}
پيشرفتهدادهپايگاهکوزوفیرواحداسالمیادزادانشگاهرپواسمعیلیوسفه
11. 11
پيشرفتهدادهپايگاه
آغاز
انتظار
انجام
انجام آماده
اجرا
سقوط
پایان
تراکنش اجرای مراحل
تراکنشدنبالهایازدستوراتاستکهبهترتيبتوسطسيستماجراميشوند:
آغازBeginوپايانEnd:وجودنقطهشروعوپايانباعثميشودچند
دستوربهعنوانيکواحدمنطقيتلقيشودوبتوانخاصيتA(atomicity)راروی
آنکنترلکرد.(Begin Transaction & End Transaction)
امتيازاستفادهازBEGIN TوEND Tآناستکهکارهاراميتوانبهواحد
هایکوچکترتقسيمبندیکردودرصورتشکستعملياتميزانعقبگرد
(Rollback)کمتریخواهيمداشت.
انتظار(wait)واجرا:تراکنشبهمنابعيميخواهد
دسترسيپيداکندکهتوسطديگرتراکنشهابکارگرفتهشده،باشد
انتظارواجراچندينبارتکرارميشودتاتراکنشبصورتموفقيت
آميزپايانپذيردوياازادامهآنمنصرفگردد.
کوزوفیرواحداسالمیادزادانشگاهرپواسمعیلیوسفه
12. 12
آغاز
انتظار
انجام
انجام آماده
اجرا
سقوط
پایان
تراکنش اجرای مراحل
پيشرفتهدادهپايگاه
انجام(commit):مرحلهایاستکههمهبخشها
براینهاييکردنکارتوافقکردهانددرSQLازدستور
COMMITميتواناستفادهکرد.
مرحلهآمادهانجامready to commit:در
اينمرحلهتراکنشهمهکارهایمربوطهراانجامدادهو
کافيستبخشهایمختلفيکهباآنسرکارداشتهاندجهت
پايانهماهنگکنداينمرحلهدرتراکنشهایطوالنيو
بانکهایاطالعاتينامتمرکزاهميتزياددارد
درSQLبازگرداندنکارهایانجامشدهتوسطيکتراکنشکهبه
هردليليموفقيتآميزنبودهبهحالتاولبادستور
ROLLBACKانجامميشود.
دقت:هرتراکنشبهمثابهيکبرنامهاستونميتوانترتيب
دستوراتراجابجاکردزيرامنطقآنبهمخواهدريختاماترتيب
اجرایتراکنشهامختلفراميتواندريکزمانبندیتغييرداد.
کوزوفیرواحداسالمیادزادانشگاهرپواسمعیلیوسفه
13. 13
تراکنش های مدل
فاکتورهاییگوناگونایربردهبندیاکنشرتیاهیدوجویددارایزجمله:
اجرا زمان مدت
نوشتن و خواندن ترتيب
سطوح تعداد
ازنظرمدتزمان،اجراتراکنشهابهدودستهیتراکنشهایکوتاه(Short Life Transaction)و
تراکنشهایطوالنی(Long Life Transaction)تقسیمبندیمیشوند.تراکنشکوتاهدارایزمان
اجراوزمانپاسخدهیکوتاهیاستکهدرحدودچندثانیهیاچنددقیقهاستمانندعملیاتبانکیاز
دستگاههایخودپرداز.درحالیکهتراکنشهایطوالنیدارایزماناجرایحداقلچنددقیقهتاچند
ساعتهستندمانندبرنامههایپردازشصوتوتصویر.
پيشرفتهدادهپايگاه
اجرا زمان مدت
کوزوفیرواحداسالمیادزادانشگاهرپواسمعیلیوسفه
14. 14
تراکنش های مدل–نوشتن و خواندن ترتيب اساس بر
تراکنش بندی ردهانواع به ها تراکنش ،نوشتن و خواندن ترتيب اساس بر ها
شوند مي بندی طبقه زير:
شده محدود تراکنش
(Restricted)
عمومي تراکنش
ای مرحله دو تراکنش
(Two steps)
شده محدود ای مرحله دو تراکنش
(Restricted two steps)
پيشرفتهدادهپايگاهکوزوفیرواحداسالمیادزادانشگاهرپواسمعیلیوسفه
15. 15
تراکنشعمومیتراکنشیاستکهدرآندستورهایخواندنونوشتنازترتیبخاصیپیروینمیکند.
مانند
T1 = {R(D1), R(D2), W(D2), R(D3), W(D1), W(D3), W(D4), C}
تراکنشدومرحلهایتراکنشیاستکهدرآنتمامدستورهایخواندنپیشازعملهاینوشتناجرامی
شوند.مانند
T2 = {R(D1), R(D2), R(D3), W(D1), W(D3), W(D2), W(D4), C}
تراکنشمحدودشده(یانوشتنمقید(Constrained Write))تراکنشیاستکهدرآنهرفقرهدادهی
Dبایدپیشازبهنگامشدنخواندهشود.مانند
T3 = {R(D1), R(D2), W(D2), R(D3), W(D1), W(D3), R(D4), W(D4), C}
تراکنش های مدل–نوشتن و خواندن ترتيب اساس بر
پيشرفتهدادهپايگاهکوزوفیرواحداسالمیادزادانشگاهرپواسمعیلیوسفه
16. 16
تراکنشمیتوانددومرحلهایومحدودشدهنیزباشد.مانند
T4 = {R(D1), R(D2), R(D3), R(D4), W(D1), W(D3), W(D2), W(D4), C}
تراکنشممکناستبراساسمدلعمل(Action Model)کارکنددرآنهرجفتعملخواندنو
نوشتنیکفقرهدادهبایدبیفاصلهودرپیهمانجامشود.مانند
T5 = {[R(D1), W(D1)], [R(D2), W(D2)], [R(D3), W(D3)], [R(D4), W(D4)], C}
اگرتراکنشیبیآنکهدادهایرابخواندآنرابنویسدمیگوییمنوشتنکور(Blind Write)انجامشده
است.مانندنوشتنفقرهدادهیD4.
T6 = {R(D1), R(D2), W(D2), R(D3), W(D1), W(D3), W(D4), C}
تراکنش های مدل–نوشت و خواندن ترتيب اساس برن
پيشرفتهدادهپايگاهکوزوفیرواحداسالمیادزادانشگاهرپواسمعیلیوسفه
17. 17
تراکنش های مدل–سطوح تعداد اساس بر
تراکنش بندی رده،سطوح تعداد اساس بر هابهشوند مي بندی طبقه زير انواع:
تودرتو تراکنش
(Nested Transaction)
مسطح تراکنش
(Flat Transaction)
شده توزيع تراکنش
(Distributed Transaction)
بلند بسيار تراکنش
(Saga Transaction)
تراکنش،مسطحکهخودشاملهرتعدادعمل(Action)میتواندباشدیکنقطهآغازویکنقطهپایان
دارد.ایننوعتراکنشبرایعملیاتپیچیدهمناسبنیست.
مانند:
BEGIN TRANSACTION
action 1
action 2
…..
action i
END TRANSACTION
پيشرفتهدادهپايگاهکوزوفیرواحداسالمیادزادانشگاهرپواسمعیلیوسفه
18. 18
تراکنش های مدل–سطوح تعداد اساس بر
درتراکنشتودرتوهرتراکنشازتعدادیزیرتراکنشمرتبطبههمتشکیلشدهاستبنابراینتراکنش
اصلیدرواقعدرختیاسلسلهمراتبیازتراکنشهاراتشکیلمیدهد.ازاینروچندنقطهآغازو
پایانبهچشممیخورد.زیرتراکنشهابهصورتهمروند(Concurrent)انجاممیشوند.تراکنش
هایتودرتوبهعنوانمبناییبرایمدلهایپیچیدهترتراکنشبکارمیرود.
BEGIN TRANSACTION T1
…..
BEGIN TRANSACTION T2
…..
BEGIN TRANSACTION T3
…..
END TRANSACTION T3 (COMMIT T3 )
…..
BEGIN TRANSACTION T4
…..
END TRANSACTION T4 (COMMIT T4 )
…..
END TRANSACTION T2 (COMMIT T2 )
…..
END TRANSACTION T1 (COMMIT T1 )
پيشرفتهدادهپايگاهکوزوفیرواحداسالمیادزادانشگاهرپواسمعیلیوسفه
20. 20
نگهداشت نقطه تکنيک(Save Point)
ایناصلکهبایدیاهمهیتراکنشتاپایانانجامشودویادرصورتناکاملبودن،تراکنشسیستمبه
شرایطیبرگرددکهانگارتراکنشاصالشروعنشدهاستدربعضیازکاربردهابهویژهزمانیکهتراکنش
هاییک،دامنهطوالنیهستندمفیدنیست.برایحلاین،مشکلراهکارsave pointیانقطهنگهداشت
معرفیشدهاست.
برایایجادنقطه،نگهداشتتابعیمانندSave Work Functionتوسطسیستماجراشدهووضعیت
جاریدادههایسیستمراذخیرهمیسازدکهداراییکشناسهاست.برنامهمیتواندبادرخواست
Rollback WorkودادنشناسهبهSave Pointموردنظربرگرددکهاینواگردممکناستجزیی
(Partial)ویاسراسری(Global)باشد.میتواننقاطSave Pointرادرحافظهماندگارنگهداشتکه
دراینصورتبهآننقطهنگهداشتپایا(Persistent Save Point)میگویند.
پيشرفتهدادهپايگاهکوزوفیرواحداسالمیادزادانشگاهرپواسمعیلیوسفه
23. 23
Several problems can occur when concurrent transactions execute in an
uncontrolled manner.
Some Concurrency Problems in transaction are :
1) The Lost Update Problem
2) The uncommitted dependency problem/The
Temporary Update (or Dirty Read) Problem
3) The inconsistent analysis problem/The
Incorrect Summary Problem
4) The Unrepeatable Read Problem
مشکالتهمروندیConcurrency Problems in Transaction
25. 25
In this example :
1) Transaction A retrieves some tuple X at time t1.
2) Transaction B retrieves same tuple X at time t2.
3) Transaction A update the tuple X at time t3.
4) Transaction B update the same tuple at time t4 on
the base of the values available at time t2.
5) Transaction A’s update is lost at time t4, since
transaction B overwrites it.
مشکالتهمروندی
26. 26
Uncommitted Dependency (Dirty Read)(دستیابینشده نهایی داده به: )
مشکالتهمروندی
پيشرفتهدادهپايگاهکوزوفیرواحداسالمیادزادانشگاهرپواسمعیلیوسفه
Uncommitted dependency occurs when a second transaction selects a
row that is being updated by another transaction. The second
transaction is reading data that has not been committed yet and may be
changed by the transaction updating the row
Time T1 T2 a
T1
begin T1
read(a)
a:=a-10
write(a)
Commit
begin T2
read(a)
a:=a+100
write(a)
.....
Rollback
100
100
100
200
200
100
190
190
T2
T3
T4
T5
T6
T7
T8
27. 27
In this example :
1) Transaction B update the tuple at time t1.
2) Transaction A retrieves the same tuple X and use
the updated results at time t2.
3) Update (made by transaction be at time t1) is then
update at time t3.
مشکالتهمروندی
28. 28
تحلیلناسازگار(Inconsistent analysis (nonrepeatable read))
مشکالتهمروندی
پيشرفتهدادهپايگاهکوزوفیرواحداسالمیادزادانشگاهرپواسمعیلیوسفه
time T1 T2 A B C SUM
t0 Begin T2 100 50 25
t1 Begin T1 SUM:=0 100 50 25 0
t2 Read(A) Read(A) 100 50 25 0
t3 A:=A-10 SUM:=SUM+A 100 50 25 100
t4 Write(A) Read(B) 90 50 25 100
t5 Read(C) SUM:=SUM+B 90 50 25 150
t6 C:=C+10 … 90 50 25 150
t7 Write(C) …. 90 50 35 150
t8 commit Read(C) 90 50 35 150
t9 SUM:=SUM+C 90 50 35 185
t10 commit 90 50 35 185
Inconsistent analysis occurs when a
second transaction accesses the same
row several times and reads different
data each time. Inconsistent analysis
is similar to uncommitted
dependency in that another
transaction is changing the data that
a second transaction is reading.
However, in inconsistent analysis, the
data read by the second transaction
was committed by the transaction
that made the change. Also,
inconsistent analysis involves
multiple reads (two or more) of the
same row, and each time the
information is changed by another
transaction; thus, the term
nonrepeatable read.
185=100+50+35
اینمقداردرستنمیباشدچونمجموع
مقادیربایدبایستی175باشد
29. 29
مشکالتهمروندی
In this example :
1) In this example, transaction A is used to
find the sum of account balances and
transaction B is used to transfer an amount
25 from account 2 to account 1.
2) At time T1, transaction A retrives AC 1 and
some becomes 35.
3) Transaction B retrives AC 2 at time T2.
And update it at time T3 as a result balance
of AC 2 becomes 75.
4) Transaction retrives AC 1 at time T4 and
update balance of AC 1 becomes 60.
5) Transaction B commits at time T6.
6) At time T7, transaction A retrieve AC 2 and
sum becomes 75 but not 100.
7) The result produced by A is wrong. Hence
we say that transaction A has seen an
inconsistent state
30. 30
The Unrepeatable Read Problem
Another problem that may occur is called unrepeatable
read, where a transaction T reads the same item twice and
the item is changed by another transaction T between the
two reads. Hence, T receives different values for its two
reads of the same item.
مشکالتهمروندی
32. 32
باشد پذیر پی در پی
CSR
VSR
باشد پذیر ترمیم
RC
ACA
ST
همروند طرح يک درستي شرايط
35. 35
ri(Q):تراکنشiدادهQخواند می راread(Q)
wi(Q):تراکنشiدادهQرانویسد میwrite(Q)
ci:تراکنشiرسد می تثبیت مرحله بهcommit
ai:تراکنشiشود می ساقطabort
biوei:یابد می پایان یا و شروع تراکنش(begin iوend i)
برخورد(Conflict):چنانچهqj, piبهترتیبدستوراتتراکنشهایtj, tiباشندگوییم،qj, pi
باهمبرخورددارنداگروتنهااگر:
-ایندوعملگرمربوطبهتراکنشهایمتمایزباشند.(tjنامساویti)
-هردوعملگربهیکدادهدسترسیداشتهباشند.
-حداقلیکیازایندو،عملگرعملگرنوشتنwrite()باشد.
پيشرفتهدادهپايگاه
زماني برنامه ،ها تراکنش(Schedule)توالي و(Sequence)
کوزوفیرواحداسالمیادزادانشگاهرپواسمعیلیوسفه
Ti
Tj
ri(q) wi(Q)
rj(Q) سازگار(true) ناسازگار(false)
wj(Q) ناسازگار(false) ناسازگار(false)
36. 36
پيشرفتهدادهپايگاه
زماني برنامه ،ها تراکنش(Schedule)توالي و(Sequence)
T1
T2
Local
Variables
Local
Variables
DBMS
op1,1 op2,1 op2,2 op1,2
op1,1 op1,2
op2,1 op2,2
Transaction Schedule
Sequence: an arbitrary merge
of two sequences or the order
of operations arriving at the
database
کوزوفیرواحداسالمیادزادانشگاهرپواسمعیلیوسفه
38. 38
پی در پی زمانبندی:
S1 : r1(A)w1(A)a1w2(A)w2(B)c2
اجرای ترتیبآنها پی در پیT1سپس وT2باشد می:S1:T2<T2
زمانبندیSراپیدرپیگوییماگربرایهردوتراکنش،پايانيکيقبلازشروعديگریباشد،به
عبارتدیگرتراکنشهابایدبصورتمجزا(نهبصورتدرهم)ویکیپسازدیگریاجراشوند
T1 r(A)w(A)a
T2 r(A)w(B)c
زماني برنامه ،ها تراکنش(Schedule)توالي و(Sequence)
پيشرفتهدادهپايگاهکوزوفیرواحداسالمیادزادانشگاهرپواسمعیلیوسفه
39. 39
برخورد در معادل زمانبندی(Conflict equivalence: )
زمانبندیSوs′
معادلدربرخوردهستنداگرهردوروییکمجموعهازدستوراتوتراکنشها
کارکنندوباجابجاکردندستوراتبدونبرخورددرزمانبدیSبتوانیمزمانبندیs′
راتولیدکنیم.
نكتهمهم:بههیچعنواننميتوانیمترتیبدستوراتیكتراكنشراعوضكنیمچون
منطقآنتراكنشعوضميشود.
زماني برنامه ،ها تراکنش(Schedule)توالي و(Sequence)
پيشرفتهدادهپايگاهکوزوفیرواحداسالمیادزادانشگاهرپواسمعیلیوسفه
40. 40
زمانبندی با برخورد در معادلS2بیابید را زیر.
S2 : r1(Q)w1(Q)r2(Q)r1(P)w2(Q)w1(p)c1r2(p)w2(p)c2
S3 : r1(Q)w1(Q)r2(Q)r1(P)w1(p)w2(Q)c1r2(p)w2(p)c2
زماني برنامه ،ها تراکنش(Schedule)توالي و(Sequence)
T1 r(Q)w(Q) r(P) w(P)c
T2 r(Q) w(Q) r(P)w(p)c
پيشرفتهدادهپايگاهکوزوفیرواحداسالمیادزادانشگاهرپواسمعیلیوسفه
T1 r(Q)w(Q) r(P) w(P) c
T2 r(Q) w(Q) r(P)w(p)c
41. 41
زماني برنامه ،ها تراکنش(Schedule)توالي و(Sequence)
پيشرفتهدادهپايگاهکوزوفیرواحداسالمیادزادانشگاهرپواسمعیلیوسفه
43. 43
گذاری قفل های تکنيک
قفل(Lock)برروییکآیتمیایکقلمدادهایبهمعنیمجوزدستیابییکتراکنشبهآنقلمدادهای
استکهتوسطزیرسیستمقفلگذاریدرسیستممدیریتپایگاهدادههابهتراکنشهااعطاشده
(Grant)ویاازآنهابازپسگرفتهمیشود.بنابراینمیتوانگفتکهقفلبرروییکواحدداده،ای
متغیریاستکهوضعآنواحددادهایرانسبتبهعملقابلانجامبررویآن(ReadیاWrite)
مشخصمیکند.
اندازهیواحدقفلشدنی(Lock Granularity)درسیستمهایمختلفمتفاوتاست.یکواحددادهای
قفلپذیرمیتواندیک،رکورد،فیلدجدول(رابطه)،یک،بالکیکفایلویاتمامپایگاهدادهباشد.اگرچه
دربعضیازسیستمهاازچنداندازهبرایواحدقفلشدنیاستفادهمیشود.همچنیناندازهیواحدقفل
شدنیگاهیمیتواندبهصورتپویاتغییرکند.ریزیاینواحدرامیتوانارتقا(Lock Escalation)داد
وبهعنوانمثالقفلدرسطحتاپلرابهقفلدرسطحرابطهتبدیلکرد.
درصورتکوچکبودناندازهیواحدقفل،شدنیتعدادواحدهادرسیستمزیادوسربارسیستمکهناشی
ازمدیریتقفلهاستنیزافزایشمییابد.دراینصورتمیزانهمروندیتراکنشهاافزایشیافتهو
احتمالتداخلآنهاکاهشمییابد.
پيشرفتهدادهپايگاهکوزوفیرواحداسالمیادزادانشگاهرپواسمعیلیوسفه
44. 44
گذاری قفل های تکنيک
ساختارقفل:اینساختارشاملفیلدهایشناسهی،قفلنوعقفل(متناظرباعملیاتموردنظر)،مقدارقفل
(مقدارمجازکهگاهبهصورتباینریاست)وشناسهیتراکنش(کهقفلبهآناعطامیشود)میباشد.
انواعقفل:قفلهادرحالتکلیبهدودستهیقفلدوگانی(Binary Lock)وقفلچندحالتی(Multi-
mode Lock)تقسیممیشوند.نوعخاصدیگریازقفلتحتعنوانچفت(Latch)وجودداردکهتنها
برایزمانکوتاهیگذاشتهمیشودمانندچفتبرروییکصفحهدرزمانانتقالآنصفحهازبافربه
دیسک.تکنیکهایدیگرقفلگذاریشاملقفلگذاریدو،فازیقفلگذاریچندسطحیوقفلگذاری
چندنسخهایهستند.
درسیستممدیریتپایگاه،دادهمدیرقفل(Lock Manager)کهقفلهارادراختیارتراکنشهامی
گذاردویاازآنهابازپسمیگیردممکناستقفلهارابهصورتایستاویاپویادراختیارتراکنشهاقرار
دهد.درحالت،پویامدیرقفلبهاعطایقفلبهتراکنشدرصورتدرخواستتراکنشدرحیناجرایآن
اقداممینمایددرصورتیکهدرحالت،ایستاقفلهایموردنیازقبلازاجراییکتراکنششناختهشدهو
توسطمدیرقفلاعطامیشود.
پيشرفتهدادهپايگاهکوزوفیرواحداسالمیادزادانشگاهرپواسمعیلیوسفه
46. 46
دوگاني گذاری قفل پروتکل
1-تراکنشTiبایدقبلازهرعملR(D)ویاW(D)دستورLock(D)رااجراکند.
2-تراکنشTiبایدبعدازهرعملR(D)ویاW(D)دستورUnlock(D)رااجراکند.
3-تراکنشTiنمیتوانددرخواستقفلرویDرابدهداگرازقبلرویDقفلداشتهباشد.
4-تراکنشTiنمیتوانددستورUnlock(D)رااجراکندمگراینکهرویDقفلداشتهباشد.
اینپروتکلبسیارمحدودکنندهبودهوبرایقفل،گذاریتفاوتیبینعملیاتبررویواحدهایدادهای
قایلنمیشود.براساسپروتکلقفلگذاری،دوگانیدرهرلحظهفقطیکتراکنشمیتواندبررویداده
قفلداشتهباشد.
پيشرفتهدادهپايگاهکوزوفیرواحداسالمیادزادانشگاهرپواسمعیلیوسفه
47. 47
حالتي چند قفل
درتکنیکقفلگذاریچند،حالتیدونوعقفلمیتواندبهتراکنشهااعطاشود:
قفلاشتراکی(Shared Lock)کهبهاختصاربهSنمایشدادهمیشودکهبه،آنقفلخواندننیزگفته
میشود.
قفلانحصاری(Exclusive Lock)کهبهXنمایشدادهمیشودوبهقفلنوشتننیزموسوماست.
اگرتراکنشیبررویدادهیDقفلSداشتهباشدتراکنشهایدیگرنیزمیتوانندبررویدادهیDقفل
Sداشتهباشند.بهاینمفهومکهچندتراکنشهمزمانمیتواننددادهیDرابخوانند.
اگرتراکنشیبررویدادهیDقفلXداشتهباشدفقطهمانتراکنشبهصورتانحصاریبهDدستیابی
داردوسایرتراکنشهاهیچنوعقفلینمیتوانندبررویDداشتهباشند.
عملیاتممکنبررویواحدهایدادهایتحتپروتکلقفلگذاریچندحالتیشاملسهعملیات:
S-Lock(D)یاR-Lock(D)وX-Lock(D)یاW-Lock(D)برایقفلگذاریوUnlock(D)برایقفل
گشاییاست.
پيشرفتهدادهپايگاهکوزوفیرواحداسالمیادزادانشگاهرپواسمعیلیوسفه
48. 48
حالتي چند گذاری قفل پروتکل
1-تراکنشTiبایدقبلازهرعملR(D)،آنراباR-Lock(D)ویاW-Lock(D)قفلکند.
2-تراکنشTiبایدقبلازهرعملW(D)،آنراباW-Lock(D)قفلکند.
3-تراکنشTiبایدبعدازاتمامهرعملR(D)ویاW(D)دستورUnlock(D)رااجراکند.
4-تراکنشTiنمیتوانددستورR-Lock(D)رااجراکنداگرازقبلیکقفلSیاXرویDقفلداشته
باشد.
5-تراکنشTiنمیتوانددستورW-Lock(D)رااجراکنداگرازقبلیکقفلSیاXرویDقفلداشته
باشد.
6-تراکنشTiنمیتوانددستورUnlock(D)رااجراکنداگرازقبلیکقفلSیاXرویDقفلداشته
باشد.
پيشرفتهدادهپايگاهکوزوفیرواحداسالمیادزادانشگاهرپواسمعیلیوسفه
50. 50
آ انواع و فازی دو گذاری قفل تکنيکن
بهایندلیلکهتکنیکهایقفلگذاریدوگانیوچند،حالتیقابلیتسریالشدنطرحهایهمروندرا
تضمیننمیکنندتکنیکدیگریبهنامتکنیکدوفازی(Two-Phase Locking)کهبهاختصاربه2PL
موسوماستدراینمرحلهموردبررسیقرارمیگیرد.هرطرحاجراکهاز2PLتبعیتکندقابلیتسریال
شدنبهصورتتعارضیراداراست.تکنیکقفلگذاریدوفازیدارایانواعزیراست:
2PL مبنايي
2PLکارانه محافظه(ايستا)
(Conservative 2PL)
2PLشديد (سخت)
)Strict 2PL(
2PLجسورانه
(Aggressive 2PL)
2PLدقيق(سخت بسيار)
(Rigorous 2PL)
پيشرفتهدادهپايگاهکوزوفیرواحداسالمیادزادانشگاهرپواسمعیلیوسفه
51. 51
مبن مدل فازی دو گذاری قفل تکنيکايي
زمانیکهیکطرحهمروندازتکنیکقفلگذاریدوفازیمبنایی(2PL)پیرویمیکندکهدرآنتمام
قفلگذاریهاقبلازاولینقفلگشاییصورتگیرد.اینروششاملدومرحلهیگسترش
(Expanding Step)وافت(Shrinkage Step)استکههمهیقفلگذاریهادرمرحلهیگسترش
وهمهیقفلگشاییهادرمرحلهیافتصورتمیگیرد.دراین،روشقفلگذاریبررویدادههابه
تدریجکهنیازبهدستیابیبهآنهاتوسطتراکنشهاباشدصورتمیگیردوقفلگشاییازدادههانیزبه
تدریجصورتمیگیرد.
T1 T2
Lock-S(B)
Read(B) Lock-S(A)
Display(B) Read(A)
Lock-X(A) Lock-S(B)
Read(A) Read(B)
A:=A+M Display(A, B)
Write(A) Unlock(A)
Unlock(B) Unlock(B)
Unlock(A)
ازآنجاکهدراین،طرحتمامیقفلگذاریهاقبلاز
تمامیقفلگشاییهاصورتگرفتهاستاینطرح2PLرا
رعایتمیکند.
پيشرفتهدادهپايگاهکوزوفیرواحداسالمیادزادانشگاهرپواسمعیلیوسفه
52. 52
مبنا فازی دو گذاری قفل مشکالتيي
همروندی تضعيف
تسلسلي طرد
(Cascading Abort)
گرسنگي
(Starvation)
بست بن
(Deadlock)
T1 T2
Lock-X(D)
Lock -X(D) Read(D)
Wait D:=D+100
Wait Write (D)
Wait Unlock(D)
Read(D)
D:=D-10
Write(D)
Unlock(D)
اینطرح2PLرارعایتمیکندامارعایت2PLدراین
طرحباعثکاهشوتضعیفهمروندیمیشودچراکه
تراکنشT1بایدمنتظرآزادشدنقفلتوسطT2بماندو
نمیتواندبهصورتهمرونددرلحظاتیکهبایدصبرکند
اجراشود.
پيشرفتهدادهپايگاهکوزوفیرواحداسالمیادزادانشگاهرپواسمعیلیوسفه
53. 53
T1 T2
Lock-X(D1)
Read(D1)
Lock-S(D2)
Read(D2)
D1:=D1+D2
Write (D1) Lock-X(D1)
Unlock(D1) Wait
. Read(D1)
. Write(D1)
. Unlock(D1)
. .
Rollback .
.
.
Rollback
مبنا فازی دو گذاری قفل مشکالتيي
طرحS1،2PLرارعایتمیکنداماباطردشدنیک
تراکنش(دراینمثالT1)تراکنشهایدیگرنیزبهدلیل
استفادهازدادههایآنبهصورتتسلسلیطردمیشوند
(دراینمثالT2پسازT1طردشدهاست).
پيشرفتهدادهپايگاهکوزوفیرواحداسالمیادزادانشگاهرپواسمعیلیوسفه
54. 54
مبنا فازی دو گذاری قفل مشکالتيي
اگرتراکنشT2یکقفلاشتراکیبررویدادهیDداشتهباشدوتراکنشT1درخواستقفلانحصاریبر
رویDکندT1بایدمنتظربرداشتهشدنقفلتوسطT2بماندحالاگرتراکنشT3زمانیکهT1منتظر
استدرخواستقفلاشتراکیبررویDداشتهباشداینقفلبهT3اعطامیشودواینتسلسلمیتواند
ادامهداشتهباشدبنابراینT1دچارگرسنگیمیشود.
درطرحS2تراکنشT1برایقفلگذاریاز
نوعنوشتنبررویD2بایدمنتظرآزادشدن
قفلبررویآنتوسطT2بماندوT2نیز
برایقفلگذاریخواندنبررویD1باید
منتظرآزادشدنقفلتوسطT1بماندکهاین
امرموجببروزبنبستمیشود.
T1 T2
Lock-X(D1)
Read(D1)
D1:=D1+100
Write (D1)
Lock-S(D2)
Read(D2)
Lock-S(D1)
Wait
Lock-X(D2)
Wait
.
.
پيشرفتهدادهپايگاهکوزوفیرواحداسالمیادزادانشگاهرپواسمعیلیوسفه
55. 55
ف دو گذاری قفل تکنيک ديگر انواعازی
در2PLمحافظه،کارانهتراکنشبایدقبلازشروعبهاجراتمامدادههایموردنیازشراقفلکند.بنابرایناگریکیاز
دادههایموردنیازرانتواندقفلکندسایردادههانیزقفلنمیشوند.بااستفادهازراهکارFIFOتراکنشهابهترتیب
زمانورودشاندرصفمیمانندوفقطآندستهازدرخواستهایفقلپذیرفتهمیشودکهباقفلهایموجود
سازگارباشد.دراینروشبهاینعلتکهزمانانتظارتراکنشهاافزایشمییابدممکناستمشکلقفلزنده(Live
Lock)پیشآیدولیبهدلیلعدموجود،رقابتپدیدهبنبسترخنمیدهد.
در2PL،شدیدکهرایجترینپروتکلقفلگذاریاستتنهادرصورتیقفلهایانحصاریگشودهمیشوندکهتراکنش
بهتثبیترسیدهباشدویاطردشدهباشد.دراینپروتکلامکانبروزبنبستوجوددارداماطردتسلسلیهرگزپیش
نمیآید.
در2PL،جسورانهدرخواستقفلبررویدادهدرستقبلازعملیاتخواندنویانوشتنبهسیستمدادهمیشود.
بنابرایناگرپسازخواندندادهنیازباشدکهدادهنوشتهشودتشدیدقفلصورتمیگیرد.دراینپروتکلامکانبروز
بنبستوجوددارد.اینروشزمانیکاراستکهاحتمالاینکهدوتراکنشهمزماندرخواستقفلبرروییکفقره
دادهکنندضعیفباشد.
در2PL،دقیقتمامیقفلهااعمازاشتراکیویاانحصاریتاتثبیتشدنتراکنشحفظمیشوند.بنابراینطرد
تسلسلیپیشنمیآیدامااحتمالبروزبنبستوجوددارد.
پيشرفتهدادهپايگاهکوزوفیرواحداسالمیادزادانشگاهرپواسمعیلیوسفه
56. 56
سطحي چند گذاری قفل تکنيک
همانطورکهقبالذکرشدمیتواندرسیستمپایگاهدادهازچندواحدقفلشدنیبااندازههایگوناگوناستفادهکرد.
اینراهکاربهتکنیکقفلگذاریچندسطحی(Multiple Granularity Locking)یابهاختصارMGLموسوم
است.اندازهیواحدهایقفلشدنیدریکسلسلهمراتبازپایینبهباالبهصورتصفت(فیلد)،تاپل(رکورد)،،صفحه
رابطه(جدول)ودرنهایتکلپایگاهدادهیرابطهایاست.
دراین،تکنیکزمانیکهتراکنشییکواحددادهایراقفلمیکندتمامیسطوحزیرینآننیزقفلمیشوند.مثال
قفلبرروییکرابطهتمامی،صفحاتتاپلهاوفیلدهایرابطهمزبوررانیزقفلمیکندواگرتراکنشینیازبه
دسترسیبهسطوحزیرینداشتهباشدبایدبهحالتانتظاررود.
تکنیکقفلگذاریچندسطحیباعثافزایشهمروندیوهمچنینافزایشکاراییمدیریتقفلمیشود.اگرتراکنشی
بخواهدبررویواحددادهیکوچکیمثلتاپلقفلداشتهباشدوسیستمفقطقادربهقفلگذاریبررویواحدبزرگی
مثلرابطهباشدواحددادهایبزرگقفلمیشودودرنتیجههمروندیتضعیفمیگردد.درحالتدیگراگرتنهاواحد
قفلشدنیتاپلباشدوتراکنشیبخواهدکلپایگاهراقفلکنداینتراکنشبایدبهتعدادتاپلهاقفلدرخواستکند.
درنتیجهباافزایشتعدادقفلهاسربارناشیازمدیریتقفلهاافزایشمییابد.
پيشرفتهدادهپايگاهکوزوفیرواحداسالمیادزادانشگاهرپواسمعیلیوسفه
57. 57
ای نسخه چند گذاری قفل
دراینتکنیکعالوهبرنسخهفعلیومورداستفادهاز،دادهحداقلیکنسخهدیگرنیزنگهداریمیشود.نگهداریاز
نسخههایدیگریازدادههادرسیستمپایگاهدادهامریمتداولاستکهدردرسترمیمبهآناشارهخواهدشد.
بنابرایناگریکتراکنشقصدخواندندادهایراداشتهباشدکهتراکنشدیگربررویآنیکقفلناسازگاربااین
درخواستخواندن،دارددیگرنسخهموجوددراختیارتراکنشدرخواستکنندهقرارمیگیرد.
زمانیازتکنیکقفلگذاریازنوعچندنسخهسازیاستفادهمیشودکهاندازهیواحدقفلشدنیبزرگنباشد.یک
واحدقفلشدنیدرسطحرکوردیاصفحهبرایکاربرداینتکنیکمناسباست.
همچنیندرکاربردهاییکهدرآنهانیازبهدسترسیبهآخریننسخهدقیقباشدنمیتوانازتکنیکقفلگذاریازنوع
چندنسخهسازیاستفادهکرد.
پيشرفتهدادهپايگاهکوزوفیرواحداسالمیادزادانشگاهرپواسمعیلیوسفه
60. 60
زماني مهر از استفاده های تکنيک
مهرزمانی(Timestamp)مقداریاستیکتاکهتوسطسیستمبههرتراکنشاختصاصمییابدومقداریاستکه
سیستممیتواندبراساسآنتراکنشهارامرتبکند.اینمقدارترکیبیاستاززمانوتاریخورودتراکنشبه
سیستمودرسیستمهایدارایپردازندههای،موازیشمارندهیپردازندهایکهتراکنشبهآندادهمیشودنیزبه
اینترکیبافزودهمیشود.مقدارمهرزمانیتراکنشTباTS(T)نشاندادهمیشود.مقدارمهرزمانبرایتراکنشی
کهزودتربهسیستمعرضهشدههموارهکوچکترازمهرزمانیتراکنشهایجدیدتراستزیراکهتراکنشهابهترتیب
زمانورودبهسیستممرتبمیشوند.بنابراینبرایدوتراکنشTiوTjکهبهترتیبواردسیستمشدهاندداریم:
TS(Ti) < TS(Tj)
بهمنظورپیشگیریازوقوعبنبستبااستفادهازتکنیکهایمهرزمانیدوالگوریتموجودداردکهعبارتنداز:
Wait - Die
(انتظار الگوريتم-ميرايي)
Wound - Wait
(جراحت الگوريتم-انتظار)
پيشرفتهدادهپايگاهکوزوفیرواحداسالمیادزادانشگاهرپواسمعیلیوسفه
61. 61
درالگوریتمانتظار–میرایی(Wait - Die)کهبهاختصاربهWDموسوماستبرایهردوتراکنشاگر
TS(Ti) < TS(Tj)بودهوTiخواستاردریافتقفلبررویدادهایاستکهTjبررویآنقفلداردTiبایدمنتظر
بماند.امااگرTjخواستاردریافتقفلبررویدادهایاستکهTiبررویآنقفلداردTjمیراندهمیشودکهدیرتر
باهمانمقدارمهرزمانیشروعشودبهایندلیلاینالگوریتمازنوعنابازدارنده(Non-Preemptive)است.
انتظار الگوريتم-ميرايي
مثال:
TS(T1) = 5
TS(T2) = 10
TS(T3) = 15
اگرT1درخواستدریافتقفلبررویدادهیDراداشتهباشدکهT2بررویآنقفلداردT1بایدبهحالتانتظار
رود.امااگرT3درخواستدریافتقفلبررویدادهیDراداشتهباشدکهT2بررویآنقفلداردT3میراندهمی
شود.
پيشرفتهدادهپايگاهکوزوفیرواحداسالمیادزادانشگاهرپواسمعیلیوسفه
62. 62
درالگوریتمجراحت–انتظار(Wound - Wait)کهبهاختصاربهWWموسوماستبرایهردوتراکنشاگر
TS(Ti) < TS(Tj)بودهوTiخواستاردریافتقفلبررویدادهایاستکهTjبررویآنقفلداردTjنیمهکارهپایان
یافتهوطردمیشودوقفلبهTiدادهمیشود.اگرTjخواستاردریافتقفلبررویدادهایاستکهTiبررویآن
قفلداردTjبایدمنتظربماند.اینالگوریتمبهدلیلرعایتحقتقدمزمانیتراکنش،هاازنوعبازدارنده
(Preemptive)است.
جراحت الگوريتم-انتظار
مثال:
TS(T1) = 5
TS(T2) = 10
TS(T3) = 15
اگرT1درخواستدریافتقفلبررویدادهیDراداشتهباشدکهT2بررویآنقفلداردT2نیمهکارهپایانیافته
وقفلبهT1دادهمیشود.امااگرT3درخواستدریافتقفلبررویدادهیDراداشتهباشدکهT2بررویآنقفل
داردT3بهحالتانتظارمیرود.
پيشرفتهدادهپايگاهکوزوفیرواحداسالمیادزادانشگاهرپواسمعیلیوسفه
63. 63
محتا انتظار و انتظار عدم های تکنيکطانه
درتکنیکعدمانتظار(No Waiting)کهبهاختصاربهNWموسوماستاگرتراکنشینتواندبررویدادهیمورد
نظرشقفلدریافتکندواردفازانتظارنمیگرددبلکهنیمهکاملپایانیافتهوطرد(Abort)میشود.سپسبعداز
مدتیدوبارهشروعبهاجراوقبلازآندوبارهدرخواستدریافتقفلمینماید.
درتکنیکانتظارمحتاطانه(Cautious Waiting)کهبهاختصاربهCWموسوماستاگرتراکنشTiدرخواست
دریافتقفلرویدادهایراداشتهباشدکهتوسطTjقفلشدهاستدرصورتیTiواردحالتانتظارمیشودکهTj
منتظردادهیدیگرینباشدوگرنهTiنیمهکاملپایانیافتهوطرد(Abort)میگردد.
پيشرفتهدادهپايگاهکوزوفیرواحداسالمیادزادانشگاهرپواسمعیلیوسفه