وضعیت داده D
عملیات
Lock-S(D) یا Rlock(D)
قفل برای نوشتن
Lock-X(D) یاWlock(D)
قفلگشایی شده
Unlock(D)
پروتکل قفل چند اسلوبی برای یک تراکنش
پروتکل مجموعه قواعدی است که باید برای قفلگذاری توسط هر تراکنش رعایت شود و توسط مدیر قفل اِعمال میشود.
- باید قبل از عمل R(D) آن را Rlock یا Wlock کند.
- باید قبل از عمل W(D) آن را Wlock کند.
- باید بعد از عمل خواندن و نوشتن، عمل Unlock را انجام دهد.
- نمیتواند دستور Rlock(D) را اجرا کند اگر از قبل، یک قفل X روی دادهی D داشته باشد.
- نمیتواند دستور Wlock(D) را اجرا کند اگر از قبل، یک قفل S یا X روی دادهی D داشته باشد.
- نمیتواند دستور Unlock(D) را اجرا کند مگر اینکه از قبل، یک قفل S یا X روی دادهی D داشته باشد.
تغییر قفل
- تقویت: تغییر قفل از S به X: یعنی اگر T، درخواست Rlock(D) اجرا کند و تنها تراکشی باشد که این دستور را اجرا میکند در صورت لزوم میتواند درخواست کند تا قفل S به X تبدیل شود. توجه شود که تقویت قفل، در صورتی که بیش از یک تراکنش روی دادهای قفل اشتراکی داشته باشند، باعث بروز بنبست میشود. نود و هفت درصد بنبستها در پایگاه داده ناشی از تکنیک تقویت قفل است. در بخش ۳-۳ به طور کامل در مورد بنبست توضیح داده خواهد شد.
- تضعیف: تغییر قفل از X به S را تضعیف قفل میگویند.
قفل چند اسلوبی و توالیپذیری
نکته بسیار مهم در مبحث قفل چند اسلوبی این است که این روش قفلگذاری، توالیپذیری طرح اجرا را تضمین نمیکند. دلیل عدم تضمین این است که تراکنش، داده تحت قفل را پیش از موعد و در واقع به طور پیشرس، قفلگشایی میکند. توجه شود که به طور کلی یک تراکنش تا هر زمان که به یک فقره داده نیاز داشته باشد، میتواند قفل را روی آن نگه دارد و همواره مطلوب نیست که بلافاصله پس از آخرین دستیابی به داده، قفلگشایی انجام شود، زیرا ممکن است توالیپذیری طرح اجرا تأمین نشود.
خصوصیات قفل چند اسلوبی
- توالیپذیری طرح اجرا را تضمین نمیکند.
- امکان بروز بنبست وجود دارد.
تکنیک قفلگذاری دو مرحلهای مبنایی
برای رفع مشکل عدم توالیپذیری قفلگذاری چند اسلوبی، تکنیک قفلگذاری دو مرحلهای به کار برده میشود. انواع تکنیکهای قفلگذاری دو مرحلهای در بخش ۳-۲ نام برده شدهاند. یکی از تکنیکهای قفلگذاری دو مرحلهای، تکنیک قفلگذاری دو مرحلهای مبنایی است.
در تکنیک قفلگذاری دو مرحلهای مبنایی، قفلگذاری روی دادهها به تدریج که نیاز به دستیابی به آن ها پیش میآید صورت میگیرد و قفلگشایی از آن ها پس از دریافت تمام قفلهای تراکنش رخ خواهد داد.
- مراحل این تکنیک
- قفلگذاری یا بسط[۳۲]: فقط میتواند داده را قفل کند.
- قفلگشایی یا قبض[۳۳]: فقط میتواند داده را قفلگشایی کند.
[جمعه 1400-07-23] [ 04:28:00 ق.ظ ]
|