Transcript Document
فصل دوم :مفاهيمي از تئوري توالي
پذيري
تهیه کنندگان:
ساسان افروغ
رضا ارشدی
فاطمه عادلی پور
سیده الهه حسین پور ده بزرگ
مقدمه :توالي پذيري يک طرح اجراي همروند تراکنش ها ،ضابطه اصلي در تشخيص صحت اجراي يک طرح است.
طرح اجراي تراکنش:
زماني که تعدادي تراکنش به داده مشترک دسترس ي دارند ترتيب اجراي آنها بايد بر اساس يک طرح اجرا انجام شود.
طرح اجرا چيست؟
اگر } t={T1,T2,…Tiباشد ،طرح اجراي مجموعه تراکنش هاي tبا sنشان داده مي شود s .داراي دو شرط زير
است:
•هر عمل تراکنش دقيقا يکبار در sوجود دارد
•ترتيب عمل ها در sدقيقا همان ترتيب نسبي آن ها در تراکنش باشد.
طرح اجرا
متوالي Serial Schedule:
همروند Concurrent Schedule:
تعريف تراکنش:
دنباله Tاز عمل ها با شرايط زير:
-1اعضاي دنباله ) Read(T,x) , Write(T,x) , Commit(T) , Abort(Tکه در آن xداده ذخيره
شده در پايگاه است.
-2اگر ) Commit(Tدر دنباله موجود باشد Abort ،موجود نيست و بالعکس.
-3اگر Commitيا ) Abort(Tدر دنباله باشد ،در انتهاي Tمي آيد.
طرح اجراي متوالي:
ناکارآمدترين طريقه اجراي تراکنش
موارد استفاده:
•برنامه کوتاه
•مقيم بودن کل پايگاه در حافظه اصلي
•وجود يک پردازنده
•عدم امکان استفاده و يا افت کارايي اجراي همروند
در اجراي طرح متوالي:
•اجراي پشت سر هم تراکنش ها
•وجود سازگاري تضمين شده
•نتيجه اجراي درست طرح
•امکان اجراي ! nطرح با وجود nتراکنش با نتيجه متفاوت
طرح اجراي همروند
همروندي:
•اجراي نامتوالي دو يا بيش از دو تراکنش
•امکان دستيابي دو يا بيش از دو تراکنش به داده مشترک بطور همزمان
نکته:
•همروندي نياز به کنترل دارد و الزم است تا عمل تراکنش هايي که بطور نامتوالي اجرا مي شوند کنترل شود.
•در همروندي ،توارد عمل Interleavingوجود دارد.
•در صورت عدم کنترل توارد ،تداخل Interfrenceبوجود مي آيد.
•تداخل ،منجر به اجراي ناصحيح طرح اجرا مي شود.
داليل لزوم همروندي:
•ايجاد محيط چندبرنامه اي
•وجود چندين حافظه با چندين پردازنده (پايگاه توزيع شده)
عمل تراکنش:
•همروند متوارد
•همروند همزمان
نکته :عدم کنترل همروندي مساوي است با از بين رفتن خاصيت انزوا
دو قاعده در اجراي همروندي:
•عدم ايجاد عملکرد نادرست برنامه هاي کاربردي
•عدم افت کارايي برنامه کاربردي
مثال:
T1
T2
T2
T1
R(D)
R(D)
R(D)
R(D)
D=D-N
D=D+M
D=D-N
D=D-N
W(D)
W(D)
R(E)
T1
T2
R(D)
T2
W(D)
D=D+M
R(D)
E=E+N
T1
R(D)
W(D)
D=D-N
D=D+M
R(E)
W(E)
R(D)
D=D+M
W(D)
a
W(D)
W(D)
W(D)
R(E)
R(E)
E=E+N
E=E+N
E=E+N
W(E)
W(E)
W(E)
b
c
. نتايج يکسان دارندd وa طرح هاي
d
نکته:
• هر همروندي درست نيست
•به هر طريقي نمي توان تراکنش ها را همروند نمود
•به علت توارد عمل در همروندي ،امکان تداخل وجود دارد و نتيجه مي تواند معتبر نباشد.
مشکالت تداخل کنترل نشده
•نتيجه از دست رفته Lost Update
•خواندن داده ناجور Dirty Data Read
•تحليل ناسازگار Inconsistent Analysis
•خواندن تکرار نشدني Unrepeated Read
مشکل نتيجه از دست رفته:
زماني رخ مي دهد که تراکنش ي بالفاصله بعد از تراکنش ديگري که مقداري را براي داده اي نوشته ،مقدار جديد
براي همان داده بنويسد.
مثال :نتيجه عمل نوشتن تراکنش اول در
T2
لحظه t3از بين رفته
T1
زمان
)R(D
t1
t2
)R(D
)W(D
)W(D
t3
t4
T2
مثال:
ازدست رفتن نتيجه نوشتن تراکنش
اول در لحظه t5
T1
زمان
)R(D1
t1
D1=D1-N
t2
)R(D1
t3
D1=D1+N
t4
)W(D1
t5
)R(D2
t6
)W(D1
مشکل خواندن داده ناجور:
t7
D2=D2+M
t8
)W(D2
t9
داده ناجور :داده اي که توسط تراکنش ي که هنوز به مرحله تثبيت نرسيده ،نوشته شده باشد.
نحوه ايجاد داده ناجور :تراکنش ي مثل T2مقدار موقت بهنگام درآمده توسط تراکنش ي مثل T1را بخواند .حال
اگر تراکنش T1دچار نقص شود آنگاه T2داده ناجور خوانده است.
مثال:
به مشکل خواندن داده ناجور ،مشکل
وابستگي به تراکنش تثبيت نشده
T2
گويند.
T1
زمان
)R(D1
t1
D1=D1+N
)W(D1
t2
)R(D1
D1=D1+m
)W(D1
)R(D3
t3
مشکل تحليل ناسازگار:
به اين مشکل ،مشکل حاصل جمع نادرست گويند.
زمان بروز مشکل :زماني که تزاکنش T1دو مقدار داده D1و D2را بهنگام مي کند و تراکنش T2يکي از اين داده
مثال D1را پس از بهنگام سازي مي خواند و مقدار D2را پيش از بهنگام سازي
زمانT1
T2
t1
SUM=0
R(D3)
SUM=SUM+D3
t2
R(D1)
D1=D1-N
W(D1)
t3
R(D1)
SUM=SUM+D1
R(D2)
SUM=SUM+D2
t4
R(D2)
D2=D2+N
W(D2)
T1
زمان
READ ACC1
t1
T2
SUM=40
READ ACC2
t2
SUM=90
t3
READ ACC3
UPDATE ACC3
30
20
.
.
t4
READ ACC1
UPDATE ACC1
40
50
COMMIT
READ ACC3
SUM=110
t5
مشکل خواندن تکرار نشدني:
به آن مشکل فازي هم گفته مي شود.
زمان بروز مشکل:
زماني که تراکنش مثل T1بخواهد D1را دوباره بخواند ،اما D1توسط تراکنش T2بهنگام شده و نتيجه عمل
آن تثبيت گرديده لذا T1ديگر نمي تواند مثل قبل D1را بخواند.
T2
T1
زمان
)R(D1
t1
D1=D1+X
)W(D1
t2
D1=D1-X
)W(D1
COMMIT
)R(D1
Y=Y-D1
)W(Y
COMMIT
t3
طرح هاي توالي پذير
به ازاي تمام داده ها نه مقدار خاص الزم است تا
نتيجه اجراي همروند تراکنش ها= نتيجه اجراي متوالي آنها
تعريف طرح توالي پذير:
•طرح اجراي همروند Scتوالي پذير است اگر همان تاثير و نتيجه را در پايگاه داشته باشد که يک طرح اجراي متوالي
nتراکنش
•يکساني نتيجه بايد براي هر تراکنش و نيز همه تراکنش ها تامين شود.
ضابطه درستي اجراي مجموعه اي از تراکنش هاي همروند ،توالي پذيري است.
ضوابط درستي پايگاه داده:
تامين جامعيت پايگاه داده
توالي پذيري طرح اجرا
هر تراکنش به تنهايي درست است.
هر طرح اجراي متوالي تراکنش ها يعني اجراي درست يکي پس از
ديگري
طرح همروند زماني درست است که معادل با يک طرح اجراي متوالي
باشد
نمايش صوري طرح اجراي nتراکنش }{T1,T2,T3,…,Tn
توالي پذيري خصوصيت مجموعه اي از تراکنش هاست .يعني اگر مجموعه اي از تراکنش ها به صورت توالي پذير
قابل اجرا باشند گفته مي شود که اين مجموعه خاصيت توالي پذيري دارند.
زمان
T1
T2
T1
T2
R(D1)
R(D1)
R(D1)
D1=D1-50
D1=D1-50
TEMP=D1*0.1
W(D1)
D1=D1-TEMP
R(D2)
W(D1)
R(D1)
D2=D2+50
R(D2)
W(D2)
D2=D2+TEMP
TEMP=D1*0.
1
W(D1)
D1=D1TEMP
W(D2)
W(D1)
S1=(T1,T2)
R(D2)
S2=(T2,T1)
D2=D2+50
W(D2)
S3
نتيجه با. توالي پذير استs3
برابر استs1
R(D2)
D2=D2+TEM
P
W(D2)
طرح هاي معادل:
دو طرح اجراي ’ s, sاز سه نظر معادلند
•معادل نتيجه اي Result Equivalent
•معادل تعارض ي Conflict Equivalent
•معادل نمايي View Equivalent
معادل نتيجه اي:
دو طرح ’ s,sمعادل نتيجه اي هستند اگر نتيجه اجراي يکساني داشته باشند.
نکته :نتيجه اجراي دو طرح مختلف ممکن است به طور اتفاقي يکسان باشد( يک مقدار خاص آغازين) ولي به ازاي
جميع مقادير يکي نباشد.
مثال:
’S
S
)R(D
)R(D
D=D*1.1
D=D+10
)W(D
)W(D
معادل تعارض ي:
تعريف دستورات متعارض:
دو دستور Ii, Ijمتعارضند اگر
•در دو تراکنش متفاوت بوده
•به داده واحد دستيابي داشته باشند
•اقال يکي از آن دو دستور ،نوشتن باشد.
)Ii=W(D
)Ii=W(D
)Ii=R(D
)Ij=W(D
)Ij=R(D
)Ij=W(D
تعريف :دو طرح ’ s,sمعادل تعارض ي هستند اگر ترتيب اجراي هر دو دستور متعارض در آن دو طرح يکسان باشد.
نتيجه :ممکن است ترتيب اجراي دستورات متعارض در دو طرح يکي نباشد ولي نتيجه دو طرح يکي باشد.
مثال:
T2
T1
)R(D1
D1=D1-50
)W(D1
)R(D2
D2=D2+10
)W(D2
)R(D2
D2=D2+50
)W(D2
)R(D1
D1=D1+10
)W(D1
دستورات ) R(D2), W(D2متعارضند .اين طرح با طرح s1متعارض نيست
ولي دستورات يکسان اجرا مي شوند
تعريف :اگر طرح sبا جابجايي دستورات نامتعارض به طرح ’ sبا همان نتيجه تبديل شود آنگاه ’ s,sمعادل
تعارض ي اند.
معادل نمايي s,s’ :معادل نمايي هستند اگر
•مجموعه تراکنش هاي دو طرح يکسان باشند و تمام عمل هاي اين مجموعه از تراکنش ها در دو طرح موجود
باشد.
•اگر تراکنش Tiاز طرح ، sمقدار اوليه اي براي D1بخواند همين تراکنش در طرح ’ sهم همان مقدار اوليه را
داشته باشد.
•اگر تراکنش Tiدر طرح ، sعمل ) R(D1را اجرا کند و مقدار D1توسط تراکنش Tjتوليد شده باشد تراکنش
Tiدر طرح ’ sهم همين عمل ) R(D1را اجرا کند.
•اگر عمل ) W(D2از تراکنش Tkآخرين عمل نوشتن D2در طرح sباشد ،همين عمل ،آخرين عمل در طرح ’s
باشد.
تعريف منبع عمل يک تراکنش:
اگر براي هر عمل) Ri(Dدر يکي از طرحها بتوان يک ) Wj(Dيافت که بالفاصله قبل از آن عمل خواندن باشد
آنگاه تراکنش Tjرا منبع عمل ) Ti(Dگويند.
تعريف s,s’ :معادل نمايي هستند اگر براي هر عمل خواندن در يک طرح ،منبع عمل خواندن همان باشد که در
طرح ديگر است.
مثال :طرح s1,s3معادل نمايي هستند ولي s1,s2نيست.
قضيه :اگر دو طرح معادل تعارض ي باشند ،معادل نمايي هستند.
انواع طرح هاي توالي پذير:
با توجه به معادل بودن طرح ها 3طرح توالي پذير داريم:
•طرح توالي پذير نتيجه اي Result Serializable
• طرح توالي پذير تعارض ي Conflict Serializable
• طرح توالي پذير نمايي View Serializable
طرح توالي پذير نتيجه اي:
طرح همروند Scتوالي پذير نتيجه اي است هر گاه معادل نتيجه اي طرح متوالي Ssباشد.
نکته :احتمال اتفاقي بودنتوالي پذيري نتيجه اي وجود دارد .لذا در تئوري توالي پذيري مورد توجه نيست.
طرح توالي پذيري تعارض ي:
طرح همروند Scتوالي پذير تعارض ي است اگر معادل تعارض ي با طرح متوالي Ssباشد ( با جابجاکردن دستورات
نامتعارض Sc ،به Ssبرسيم)
S6
T1
T2
T1
. استS1 توالي پذير تعارض ي با طرح متواليS3 طرح:مثال
S7
S8
:مثال
T2
T1
T2
BEG TR
BEG TR
BEG TR
R(D1)
R(D1)
R(D1)
W(D1)
W(D1)
W(D1)
BEG TR
BEG TR
R(D2)
R(D1)
R(D1)
W(D2)
W(D1)
R(D2)
COMMIT
W(D1)
R(D2)
W(D2)
BEG TR
W(D2)
COMMIT
R(D1)
COMMIT
W(D1)
R(D2)
R(D2)
R(D2)
W(D2)
W(D2)
W(D2)
COMMIT
COMMIT
COMMIT
S6, دو طرح
معادلند وS7
هر دو توالي
پذير تعارض ي
S8 با
دو طرح مي
توانند توالي پذير
باشند ولي توالي
پذير تعارض ي
.نباشند
طرح توالي پذير نمايي:
تعريف :طرح Scتوالي پذير نمايي است ،اگر معادل نمايي با يک طرح متوالي Ssباشد
مثال:
S9
نمايي طرح
اين طرح معادل
} S’={T1,T2,T3مي باشد ولي
معادل تعارض ي آن نيست.
T3
T2
T1
BEG TR
)R(D
مي توان نشان داد هر طرح که توالي
پذير نمايي باشد ولي تعارض ي نباشد
داراي يک عمل نوشتن کور است.
BEG TR
)W(D
COMMIT
)W(D
COMMIT
BEG TR
)W(D
COMMIT
S10
T2
ممکن است طرحي توليد شود
که نسبت به طرح اوليه نه
تعارض ي باشد نه نمايي ولي
درست باشد .مانند اين مثال
T1
T2
T1
)R(D1
)R(D1
D1=D1-10
D1=D1-10
)W(D1
)W(D1
)R(D2
)R(D2
D2=D2-20
D2=D2+10
)W(D2
)W(D2
)R(D2
)R(D2
D2=D2+10
D2=D2-20
)W(D2
)W(D2
)R(D1
)R(D1
D1=D1+20
D1=D1+20
)W(D1
)W(D1
•نتيجه درج Bتوسط دو تراکنش اول ناديده گرفته مي شود
•اين طرح توالي پذير تعارض ي نيست .چرا که
.1تراکنش دوم Aرا مي نويسد قبل از آنکه تراکنش اول آن را
بخواند .الزم است تا T2قبل از T1بيايد.
.2ولي تراکنش اول Bرا مي نويسد قبل از آنکه تراکنش دوم آن را
بنويسد .پس الزم است تا T1قبل از T2بيايد.
.3اثر ) W1(B) , W2(Bدر پايگاه درازمدت نيست.
T3
T2
T1
)R2(B
)W2(A
)R1(A
)R3(A
)W1(B
بررس ي منبع عمل ها:
•منبع عمل ) R2(Bتراکنش T0
•منبع عمل ) R1(Aتراکنش T2
•منبع عمل ) R3(Aتراکنش T2
•منبع عمل خواندن Aتوسط تراکنش ، Tfتراکنش T2
•منبع عمل خواندن Bتوسط تراکنش ، Tfتراکنش T3
)W2(B
)W3(B
آزمون توالي پذيري
گراف پيشايندي
•براي بررس ي آزمون توالي پذيري تعارض ي با توليد گراف تعارض يا پيشايندي (Precedenceتقدم)
•تقدم يعني تراکنش Tiعمل Oiرا روي داده اي انجام داده قبل از آنکه تراکنش Tjعمل Ojرا روي همان داده
انجام دهد و Oi , Ojمتعارض باشند.
•گراف پيشايندي ،گرافي است جهت دار ) G=(N,Eکه در آن } N={T1,…,Tnمجموعه رئوس و
} E={e1,…,emمجموعه يالها.
•در صورتي بين دو گره Tiو Tjيالي موجود است اگر يک عمل از ، Tiپيش از يک عمل از Tjو متعارض با آن در
طرح باشد.
•طرح Sتوالي پذير تعارض ي است اگر و فقط اگر در اين گراف ،دور وجود نداشته باشد.
T1
T2
T2
T1
T1
T2
R(D1)
R(D1)
R(D1)
D1=D1-50
D1=D1-10
D1=D1-50
W(D1)
W(D1)
W(D1)
R(D2)
R(D2)
R(D1)
D2=D2+50
D2=D2+10
D1=D1-10
W(D2)
W(D2)
W(D1)
S1
S2
R(D1)
R(D1)
R(D2)
D1=D1-10
D1=D1-50
D2=D2+50
W(D1)
W(D1)
W(D2)
R(D2)
R(D2)
R(D2)
D2=D2+10
D2=D2+50
D2=D2+10
W(D2)
W(D2)
W(D2)
T1
T2
T2
T1
S3
T1
T2
T1
T2
R(D1)
D1-D1-50
R(D1)
D1=D1-10
W(D1)
R(D2)
W(D1)
R(D2)
D2=D2+50
W(D2)
D2=D2+10
W(D2)
T1
T2
الگوريتم آزمون توالي پذيري:
•براي هر تراکنش Tiدر ،Sيک گره با برچسب Tiايجاد مي شود
•اگر تراکنش Tjدر Sعمل ) R(Dرا بعد از عمل ) W(Dاز تراکنش Tiدر ، Sاجرا کند يالي از Tiبه Tjايجاد
مي شود.
•اگر تراکنش Tjدر Sعمل ) W(Dرا بعد از عمل ) R(Dاز تراکنش Tiدر ، Sاجرا کند يالي از Tiبه Tjايجاد
مي شود.
•اگر تراکنش Tjدر Sعمل ) W(Dرا بعد از عمل ) W(Dاز تراکنش Tiدر ، Sاجرا کند يالي از Tiبه Tj
ايجاد مي شود.
•طرح Sتوالي پذير است اگر و فقط اگر در گراف ،دور وجود نداشته باشد.
T1
T2
T3
T1
T2
R(Z)
R(Y)
R(Y)
R(Z)
R(X)
W(Y)
R(Y)
W(X)
W(Y)
R(Z)
W(Z)
R(X)
R(Z)
W(X)
W(Y)
R(Y)
W(Z)
W(Y)
R(Y)
R(X)
R(Y)
W(Y)
W(Y)
R(X)
W(X)
W(X)
X
T1
T3
Y
T3
T2
Y,X
T1
T2
T3
يافتن ترتيب تراکنش ها در طرح متوالي معادل طرح همروند:
•به آن ترتيب توالي پذيري Serializability Orderهم گفته مي شود.
•هر گاه در گراف پيشايندي طرح Sيالي از Tiبه Tjوجود داشت ،اين يال بايد در گراف پيشايندي طرح ’ Sکه
طرح متوالي معادل طرح Sاست نيز وجود داشته باشد.
T1
T1
T1
T3
T2
T4
T2
T3
T4
T3
T2
T4
کاربرد تئوري توالي پذيري:
•طرح توالي پذيري ،همروندي اجراي تراکنش ها را ،در عين تضمين صحت اجرا ،امکان پذير مي کند.
•آزمون توالي پذيري در عمل دشوار است.
•مديريت چگونگي توارد عمل ها توسط واحدي از مديريت تراکنش ها ،موسوم به زمان بند ،مديريت مي شود.
•براي تضمين توالي پذيري طرح اجرا ،از پروتوکل هاي همروندي استفاده مي شود