برخورد در تراکنش ها

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‬آزاد گردند‪.‬‬
‫‪‬موفق وپیروزباشید‪.....‬‬
‫‪‬‬
‫‪‬‬
‫یا حق‬