برخورد در تراکنش ها
Download
Report
Transcript برخورد در تراکنش ها
استاد مربوطه :دکتر باقری فرد
تهیه کننده گان :
احسان حاتمی ،عباس امامی مقدم ،علی روان ،قاسم جمعه پور
مروری بر مطالب گذشته
زمانبندی
ترتیب جزئی
زمانبندی کامل
پرتو ثابت
پی در پی پذیر در برخورد
تشخیص پی در پی پذیر در برخورد
ترمیم پذیری
زمانبندی فاقد سقو ط های آبشاری
زمانبندی محض
قفل ها
قفل دو مرحله ای
اصول کلی قفل گذاری
پروتکل قفل دو مرحله ای پایه
پروتکل قفل دو مرحله ای محافظه کار
پروتکل قفل دو مرحله ای محض
همانگونه که در بخش های قبلی هم عنوان شد برای اطمینان از درستی اجرای تراکنش ها-1کنترل همروندی-2
مدیریت ترمیم مهم ترین آنها می باشد.
یک تراکنش به عنوان یک برنامه شامل:خواندن ها – محاسبات و نوشتن های متعددی است که به طور
همروند که با دستورات تراکنش های دیگر اجرا میشود
همروندی:امکان دستیابی 2یا بیش از دو تراکنش به داده مشترک به طور همزمان
اثرات تراکنش-1:اثرات روی داده های بانک اطالعاتی-2اثرات روی سایر تراکنش ها
پی در پی پذیر:اگر اجرای همروند تراکنش ها با اجرایی یکی از طرحهای پی در پی(متوالی)تراکنش یکی باشد این
اجرا را پی در پی پذیر میگوییم
ترمیم پذیری:فرآیندی است که در صورت بروز خرابی،پایگاه داده را به وضع صحیح برگرداند به گونه ای که
هیچ اثری از خرابی در آن نباشد
نظریه پی در پی پذیری با ابزاری ریاض ی گونه به اثبات درستی یا نادرستی زمانبندی ها می پردازد.
زمانبندی:یک ترتیب جزئی ( )Partial orderاز اجرای همروند تراکنش هاست.
چنانچه در یک مجموعه ترتیب کلی( )Total Orderداشته باشیم ،بین هر دو عضو دلخواه از بین این مجموعه مثل aو bحتما ً باید مشخص
شود که آیا aقبل از bاست یا برعکس .به عبارت دیگر ترتیب این دو نسبت به هم نمی تواند دلخواه باشد در غیراین صورت ،ترتیب جزئی است.
زمانبندی را می توان با یک گراف جهت دار فاقد حلقه ( )DAGنمایش داد که در آن هر گره ،یکی از دستورات تراکنش را را با نماد ) Oi( Xنشان
میدهند.
: Oنوع عملگر ( rخواندن) یا ( wنوشتن) می باشد
: iشماره تراکنش
: Xنوع داده
Ciیا : aiنحوه اتمام تراکنش
Pنمایش میدهند
هر لبه(یال) را در گراف به صورت q
مثال:
دو عملگر باهم برخورد دارنداگر-1:مربوط به تراکنش های مختلف باشند-2روی یک داده کار کنند-3حداقل یکی از آنها عملگر نوشتن باشد.
برای دو عملگری که باهم برخورد دارند ،حتما ً باید ترتیب اجرای آنها را نسبت به هم(هم در تراکنش ،هم در زمانبندی ) تعیین کنیم زیرا:
-1در مورد )ri(xو ) ، wj(xنتیجه خواندن داده ،قبل و بعد از نوشتن روی آن داده ممکن است متفاوت باشد و مقداری که خوانده میشود بستگی
به این دارد که خواندن قبل از نوشتن اجرا میشود یا بعد از آن
-2در مورد )wi(xو ) ، wj(xمقدار نهایی نوشته شده در xبستگی به این دارد که کدام عملگر wآخر اجرا شود
Ti-1شامل مجموعه عملگرهای خواندن و نوشتن داده ها و تثبیت یا ساقط می باشد.
یکی از دو عملگر تثبیت یا ساقط باید وجود داشته باشد و نه هردوی آنها.
عملگر تثبیت یا ساقط آخرین عملگر است.
ترتیب اجرای خواندن و نوشتن تراکنش روی یک داده حتما ً باید مشخص شده باشد.
H-1شامل تمام تراکنش ها می باشد:
-2ترتیب اجرای دستورات تراکنش ها حفظ می گردد و ترتیب های دیگری نیز ممکن است اضافه شوند:
-3برای هر دو عملگر دارای برخورد ،باید ترتیب آنها مشخص شود:
مثال:تراکنش های زیر را در نظر بگیرید:
زمانبندی کامل H1روی مجموعه تراکنش های باال به صورت زیر میباشد:
زمانبندی’ H1پیشوندی ازH1است:
تعریف :تراکنش Tiدر Hتثبیت (ساقط) شده است اگر (ai€H)Ci€Hدر غیر این صورت Tiفعال است
نکته :زمانبندی کامل ،تراکنش فعال ندارد.
زمانبندی Hکه با ) C(Hنمایش داده میشود با حذف تمام عملگرهای تراکنش های تثبیت نشده حاصل میگردد.
نکته :پرتو ثابت ،یک زمانبندی کامل روی مجموعه تراکنش های تثبیت شده میباشد.
اگر طرح همروند راطوری تغییر دهیم که به یکی از طرح های پی در پی برسیم به شرطی که دستورات با هم برخورد نداشته باشند به آن پی در پی پذیر
در برخورد گفته میشود.
تعریف :دو زمانبندی Hو ’ Hمعادل در برخورد هستند اگر وتنها اگر:
-1مجموعه تراکنش ها و عملگرهایشان یکسان باشد.
-2ترتیب عملگرهای دارای برخورد تراکنش های ساقط نشده ،در هر دو ،یکسان باشد:
مثال :در زمانبندی های زیر H2 ،و H3معادل هستند اما H4و H5با هیچ کدام معادل نیستند.
توضیح:
همه موارد خواص زمانبندی را دارند
H4شرط 1را ندارد
H5شرط 2را ندارد.
تعریف :تراکنش Tiدر زمانبندی Hقبل از Tjاجرا میشود اگر وتنها اگر تمام عملگرهای Tiقبل از تمام عملگرهای Tjاجرا شود
تعریف:زمانبندی کامل Hرا پی در پی گوئیم اگر برای هر دو تراکنش Tiو Tjدر Ti ،Hقبل از Tjاجرا شود یا بالعکس:
تعریف :در گراف پی در پی پذیری Hکه آن را با ) SG(Hنمایش میدهیم ،گره ها تراکنش ها هستند و لبه Tj
که در Hعملگری ناسازگار از Tiقبل از عملگری ناسازگار از Tjآمده باشد.
قضیه:1زمانبندی Hپی درپی پذیر در برخورد است :
اگر و فقط اگر )SG(Hفاقد حلقه باشد
قضیه :2در گراف پی در پی پذیری خاصیت جابجایی وجو ندارد
اثبات مثال نقض:
(i≠j)Tiدر صورتی وجود دارد
تعریف :زمامنبندی Hرا ترمیم پذیر مینامیم اگر ،هرگاه Tiاز (i≠j)Tjبخواند ،تثبیت Tjقبل از تثبیت Tiباشد.
نکته:اشکال عمده زمانبندی های ترمیم پذیر سقوط های آبشاری است.
تعریف :زمانبندی Hرا فاقد سقوط آبشاری می نمامیمم اگر ،هرگاه Tiاز (i≠j)Tjبخواند ،آنگاه تثبیت Tjقبل از خواندن Ti،باشد
تعریف :زمانبندی Hرا محض(سخت گیر) مینامیم هرگاه هر عمل ) ri(Xکه بعد از ) wj(Xانجاممیشود ،حتما ً پس از خاتمه Tjباشد.
نکته:
نماد های ترمیم پذیر RCو فاقد سقوط های آبشاری ACAو محض STمی باشند.
مثال :تراکنش ها و زمانبندی های زیر را در نظر بگیرید:
نکته :اگر زمانبندی محض باشد ،یقینا ً فاقد سقوط های آبشاری نیز هست و اگر فاقد سقوط های آبشاری باشد ،ترمیم پذیر نیز می باشد .عکس
این ادعا همیشه صحیح نیست.
امتیاز دستیابی به یک واحد داده است که توسط زیر سیستم قفل گداری به یک تراکنش داده میشود یا از آن گرفته میشود.
انواع قفل ها:
-1باینری
-2چند اسلوبی
-2-1اشتراکی
-2-2انحصاری
مثال :معادل زمانبندی S1را با استفاده از قفل های اشتراکی و انحصاری بنویسید.
S1 : r1(A)w1(A)a1w2(A)w2(B)c2
:حل
S2 : s1(A)r1(A)x1(A)w1(A)a1u1(A)x2(A)w2(A)x2(B)w2(B)u2(A)u2(B)c2
می توان اینگونه نیز نمایش داد:
S(A),r(A),x(A),w(A),u(A),a
x(A),w(A),x(B),w(B),u(A),u(B),c
S 2: t 1
t2
-1پروتکل قفل دو مرحله ای 2pl:
-2پروتکل پایه ای2Bpl:
-3پروتکل محافظه کارC2pl:
-4پروتکل شدیدS2pl:
-5پروتکلSC2pl
قفل دو مرحله ای): (2PL
نماد ) :oli(xبرای در خواست قفل : oui(x) ،برای آزاد نمودن قفل
عملگر oو ) ui(xبرای باز کردن قفل هر عملگری از تراکنش iروی داده xبه کار میرود.
تعریف :دو قفل با هم ناسازگار(برخورد دارند) اگر روی داده های یکسان ،مربوط به تراکنش های مختلف و حداقل یکی از آنها قفل نوشتن باشد .در غیر
این صورت با هم سازگار هستند.
-1هر عملگر بعد از قفل کردن و قبل از آزاد کردن قفل ،داده مربوطه اجرا میشود
-2بازکردن قفل هر داده مربوط به عملگرهای هر تراکنش حداکثر یکبار انجام میشود.
-3در صورتی داده قفل شده xتوسط تراکنش های همروند دیگری قفل میشود که این قفل ها با هم سازگار می باشند.
تعریف:یک زمانبندی از قفل دو مرحله ای پایه پیروی میکند اگر و تنها اگر قفلی از هر تراکنش ی آزاد شد ،از آن پس آن تراکنش
نتواند هیچ قفل دیگری (روی هیچ داده ای) بگیرد.
پروتکل قفل دو مرحله ای پایه ،هر سه مشکل همروندی را حل میکند اما به دلیل وقوع بن بست تراکنش ها ساقط میشود.
تعریف:یک زمانبندی از نوع قفل دو مرحله ای محافظه کار است اگر و تنها اگر از نوع قفل دو مرحله ای پایه باشد و هر تراکنش آن قبل از شروع به
اجرا ،تمام قفلهای مورد نیازش را اخذ نموده باشد:
نکات:
-1قفل دو مرحله ای محافظه کار تضمین میکند که بن بست رخ ندهد.
-2مجموعه داده هایی که تراکنش برای خواندن(نوشتن) نیاز دارد را (write-set) ، read-setمینامیم.
-3نقطه ضعف : C2PLعالوه بر کاهش سطح همروندی نیاز به داشتن read-setو write-setمیباشد.
تعریف:یک زمانبندی از نوع قفل دومرحله ای محض است اگر و تنها گر از نوع قفل دو مرحله ای پایه باشد و قفلهای wدر پایان تراکنش مربوطه (پس از
اجرای Ciیا ) aiو قفلهای rپس از اجرای آخرین عملگر تراکنش و قبل از ciیا aiآزاد گردند.
موفق وپیروزباشید.....
یا حق