بخشی از پاورپوینت
اسلاید 1 :
بسم الله الرحمن
ا لرحیم
اسلاید 2 :
فصل سوم : تکنیک های کنترل همروند
اسلاید 3 :
برای تضمین توالی پذیری طرح اجرا، تکنیک هایی وجود دارد که به آن ها تکنیک همروندی گفته می شود .
این تکنیک ها چهار رده دارند :
1- تکنیک های قفل گذاری locking
2- تکنیک زمانمهر time stamping
3- تکنیک چند نسخه سازی multiversioning
4- تکنیک تأیید ( تصدیق )certification
تکنیک های کنترل همروندی بطور کلی به دو رده تقسیم می شوند :
تکنیک های بدبینانه کنترل همروندی pessimistic
تکنیک های خوشبیانه کنترل همروندی optimistic
اسلاید 4 :
تکنیک قفل گذاری :
ابتدا تعریف قفل : امتیاز دستیابی به یک واحد داده است که توسط زیر سیستم قفل گذاری به یک تراکنش داده می شود و یا از او باز پس گرفته می شود . در سطح برنامه سازی می توان گفت قفل متغیری است وابسته به یک واحد داده و نشان دهنده وضع آن واحد داده نسبت به عمل قابل انجام روی آن .
اندازه (ریزی ) واحد قفل شدنی :
اندازه واحد داده ای می تواند فیلد ، رکورد ، بلاک ، تعداد بلاک در قالب بزرگتر مثلاً باکت ، فایل، تعدادی فایل و یا تمام پایگاده داده باشد .
واحد قفل شدنی ، واحد داده ای است که سیستم قفل می کند تا دستیابی به آن مستقلاً کنترل شود .
اسلاید 5 :
مزایا و معایب کوچک و بزرگ بودن اندازه واحد قفل شدنی :
فاکتور بزرگ کوچک
تعداد واحد قفل شدنی کم زیاد
سربار سیستم پایین بالا
احتمال تداخل تراکنش ها بالا پایین
میزان همروندی پایین بالا
اندازه جدول قفل هاکوچکبزرگ
حافظه مورد نیازکمزیاد
اسلاید 6 :
ساختار قفل : نوعی رکورد است که محتوای فیلدهای آن عبارتند از :
1-کلید یا شناسه ای برای واحد قفل شدنی
2- نوع قفل
3-مقدار قفل
4-شناسه تراکنش
مثال )مثالی مطرح می کنیم که نشان می دهد ، اگر داده اشتراکی قفل نشود مقدار نادرست در پایگاه داده تولید می شود .
اسلاید 7 :
در این مثال هر یک از دو تراکنش یک واحد به مقدار A اضافه می کنند ، ولی مقدار نهایی A فقط یک واحد افزایش می یابد . اگر در این مثال هر یک از دو تراکنش یک واحد قفل شود ، مشکل بروز نمی کند .
اسلاید 8 :
مدیر قفل :
-مدیر قفل مستقیماً با مدیر تراکنش ها تماس دارد . مدیر تراکنش ها درخواست قفل گذاری را به مدیر قفل می دهد و مدیر قفل ممکن است قفل درخواست شده را به تراکنش متقاضی قفل بدهد یا درخواست قفل را رد کند .
انواع قفل گذاری :
پویا یا استاندارد : مدیر قفل پیرو درخواست تراکنش اقدام می کند.
ایستا : تمام قفل های لازم برای اجرای یک تراکنش ، پیش از اجرا، درخواست می شود
اسلاید 10 :
انواع قفل : 1-قفل دوگانی 2- قفل چند اسلوبی
قفل دوگانی : یک متغیر دو مقداری است . اگر مقدار را با LvaL نمایش دهیم و بخواهیم داده D را قفل گذاری کنیم منطق زیر را می توان پیاده سازی کرد .
اگر LvaL(D)=1 ، دستیابی به D ناممکن است .
اگر LvaL(D)=0 ، دستیابی به D ممکن است .
برای قفل گذاری روی D ، عملیات Lock(D) و برای قفل گشایی ، عملیات UNCLOCK(D) باید در تراکنش اجرا شوند.
اسلاید 11 :
پروتکل قفل گذاری دوگانی
این پروتکل به صورت زیر است :
1-تراکنش T ، باید قبل از هر عملی R(D) یا W(D) ، دستور Lock(D) را اجرا کند .
2- تراکنش T ، باید بعد از همه عملیات R(D) و W(D) ، دستور UNLOCK را اجرا کند .
3- تراکنش T ، نمی تواند درخواست قفل روی D را بدهد اگر از قبل روی D قفلی داشته باشد .
4- ترکنش T ، نمی تواند دستور UNLOCK(D) را اجرا کند مگر اینکه قفلی روی Dداشته باشد .
-این پروتکل توسط واحد مدیریت قفل اعمال می شود .
-این پروتکل بسیار محدود کننده است .
اسلاید 12 :
کدهای ص 79 پایین
اسلاید 13 :
قفل چند اسلوبی :
در قفل چند اسلوبی دو نوع قفل داریم:
1-قفل اشتراگذاری یا خواندن (S)
2-قفل انحصاری یا نوشتن (X )
سازگاری این دو نوع قفل طبق ماتریس بالا است :
در قفل چند اسلوبی عملیات زیر را داریم :
بنابراین داده D در هر لحظه ،
در یکی از سه وضعیت زیر است :
اسلاید 14 :
پروتکل قفل چند اسلوبی:
این پروتکل چنین است :
1-تراکنش T باید قبل از عمل R(D) آنرا با RLOCK یا WLOCK قفل کند .
2- تراکنش T باید قبل از عمل W(D) ، آنرا با WLOCK قفل کند .
3-تراکنش T باید بعد از اتمام عملیات خواندن و نوشتن ، عمل UNLOCK را انجام دهد .
4-تراکنش T نمی تواند دستور RLOOK(D) را اجرا کند ، اگر از قبل یک قفل S یا X
روی D داشته باشد .
5- تراکنش T نمی تواند دستور WLOCK(D) را اجرا کند ، اگر از قبل یک قفل S یا X
روی D داشته باشد.
6-تراکنش T نمی تواند دستور UNLOCK(D) را اجرا کند ، مگر اینکه از قبل ، روی D قفل S یا X داشته باشد.
اسلاید 15 :
کد های صفحه 81 پایین
اسلاید 16 :
کد های صفحه 82 پایین
اسلاید 17 :
تغییر قفل :
-تغییر می تواند ماهیتاً تقویت یا تضعیف قفل باشد .
تقویت قفل : تغییر آن از S به X
تضعیف قفل : تغییر آن از X به S
تقویت قفل در شرایطی که بیش از یک تراکنش روی فقره داده قفل اشتراکی داشته باشند ، موجب بروز بن بست می شود .
-97 درصد بن بست ها در سیستم پایگاهی ناشی از همین تکنیک تقویت قفل است .
اسلاید 18 :
طرح همروند:
اسلاید 19 :
تفکیک قفل گذاری دو مرحله ای :
جهت پوشش عیب قفل گذاری چند اسلوبی که توالی پذیری طرح اجرای همروند تراکنش ها را تأمین نمی کند از این تکنیک استفاده می شود .
تکنیک قفل گذاری دو مرحله ای : گونه مبنایی (2PL)
-تکنیکی است برای کنترل دستیابیهای همروند به داده اشتراکی
عبارت است از قفل گذاری روی داده ها توسط تراکنش به تدریج که نیاز به دستیابی به آن ها دارد و قفل گشایی از داده پس از آنکه تراکنش تمام قفل ها مورد نیازش را دریافت کرده باشد .
-این تکنیک دو مرحله دارد : مرحله ای قفل گذاری یا بسط – مرحله ای قفل گشایی یا قبض
اسلاید 20 :
مشکلات 2PL مبنایی :
عبارتند از :
ا- تضعیف همروندی
2- طرد تسلسلی cascading abort
3- بن بست dead lock
4- محرومیت ( گرسنگی ) starvation
5- قفل مدام(قفل زنده)live lock