۶
۶
با توجه به اطلاعات موجود در جدول ۳-۲ و ۳-۳، مشاهده میشود که دو تراکنش به طور همروند درخواست رزرو کردن صندلی را داشتند. در نهایت و بعد از اجرای همروند باید دو صندلی رزرو میشد. اما به دلیل قفلگذاری نکردن، فقط یک صندلی اضافه شد و تعداد صندلیهای رزرو شده بعد از انجام شدن هر دو تراکنش از پنج به شش تغییر یافت. در حالی که باید در نهایت به مقدار هفت میرسید.
مدیر قفل و مراحل انجام شده برای قفلگذاری
جدول قفلها نوعی جدول درهم است و مدیر قفل، تابع درهمساز را روی شناسهی واحدِ دادهای قفلشدنی اعمال میکند. در شکل ۳-۱، عملیات مدیر قفل و مدیر تراکنش را مشاهده مینمایید.
شکل ۳-۱- عملیات مدیر قفل و مدیر تراکنش
نحوه در اختیار قرار دادن قفل توسط مدیر قفل
به دو شیوه قفل توسط مدیر قفل به درخواست کنندهها داده میشود:
- قفلگذاری پویا[۲۷]: بر اساس درخواست تراکنش عمل میکند.
- قفلگذاری ایستا[۲۸]: قبل از شروع تراکنش تمام قفلها دریافت میشود و لازمه آن شناسایی تمام قفلها قبل از اجراست.
توجه: چفت[۲۹]: نوعی قفل است که برای زمان کوتاهی گذاشته میشود. مثلاً چفت گذاشتن روی صفحهای که قرار است از بافر به دیسک منتقل شود.
قفل چند اسلوبی
- قفل اشتراکی (S)[30] یا قفل خواندن: اگر تراکنشی روی دادهی D قفل S بگذارد سایر تراکنشها هم میتوانند روی D قفل S بگذارند یعنی آن را بخوانند و به D دسترسی داشته باشند.
- قفل انحصاری (X)[31] یا قفل نوشتن: اگر تراکنشی روی دادهی D قفل X بگذارد منحصراً همان تراکنش میتواند D را بنویسد و سایر تراکنشها نمیتوانند روی D قفل بگذارند.
ماتریس همایندی یا سازگاری قفلهای چند اسلوبی
در جدول ۳-۴ و ۳-۵، ماتریس سازگاری قفلهای چند اسلوبی مشاهده میشود.
جدول ۳-۴- ماتریس همایندی
X
S
X
N
N
S
N
Y
جدول ۳-۵- سازگاری قفلهای چند اسلوبی