قفل ثنائي الطور

في قواعد البيانات ومعالجة المعاملات ، يُعدّ القفل ثنائي الطور ( 2PL ) أسلوبًا للتحكم في التزامن يضمن إمكانية تسلسل البيانات في حالة التعارض . [ 1 ] [ 2 ] وهو أيضًا اسم مجموعة جداول معاملات قاعدة البيانات (السجلات) الناتجة. يستخدم هذا البروتوكول أقفالًا تُطبّقها المعاملة على البيانات، والتي قد تمنع (تُفسّر على أنها إشارات للتوقف) المعاملات الأخرى من الوصول إلى نفس البيانات خلال فترة تنفيذ المعاملة.

يتم تطبيق الأقفال وإزالتها على مرحلتين باستخدام بروتوكول 2PL:

  1. مرحلة التوسع: يتم الحصول على الأقفال ولا يتم تحرير أي أقفال.
  2. مرحلة التقلص: يتم تحرير الأقفال ولا يتم الحصول على أي أقفال.

يستخدم البروتوكول الأساسي نوعين من الأقفال: الأقفال المشتركة والأقفال الحصرية . وقد تستخدم تحسينات البروتوكول الأساسي أنواعًا إضافية من الأقفال. وباستخدام الأقفال التي تحجب العمليات، قد تتعرض بروتوكولات 2PL وS2PL وSS2PL لحالات جمود ناتجة عن الحجب المتبادل لمعاملتين أو أكثر.

قراءة وكتابة الأقفال

تُستخدم الأقفال لضمان قابلية التسلسل . تكون المعاملة محتفظة بقفل على كائن ما إذا كانت تلك المعاملة قد حصلت على قفل على ذلك الكائن ولم يتم تحريره بعد.

في بروتوكول المصادقة الثنائية (2PL)، تُستخدم فقط أقفال الوصول إلى البيانات، وهي أقفال القراءة ( الأقفال المشتركة ) وأقفال الكتابة ( الأقفال الحصرية ). فيما يلي قواعد أقفال القراءة وأقفال الكتابة :

  • يُسمح للمعاملة بقراءة كائن ما إذا وفقط إذا كانت تحتفظ بقفل قراءة أو قفل كتابة على ذلك الكائن.
  • يُسمح للمعاملة بكتابة كائن إذا وفقط إذا كانت تحتفظ بقفل كتابة على ذلك الكائن.
  • يُسمح لجدول زمني (أي مجموعة من المعاملات) بحجز عدة أقفال على نفس الكائن في آنٍ واحد، بشرط ألا يكون أيٌّ من هذه الأقفال قفل كتابة. إذا حاول قفل غير مسموح به الحجز في الوقت نفسه، فسيتم حظره.
جدول توافق الأقفال
نوع القفلقفل القراءةقفل الكتابة
قفل القراءةX
قفل الكتابةXX

المتغيرات

يضمن قابلية التسلسل في حالة التعارضيقضي على حالات الجموديضمن إمكانية الاسترداديضمن الصرامةيمنع القراءات الوهميةيمنع القراءات غير الواضحة
2PLنعملالالالالا
C2PLنعمنعمنعم؟نعم؟لانعم
S2PLنعملانعمنعمنعمنعم
SS2PLنعملانعمنعمنعمنعم

لاحظ أن جميع الجداول الزمنية القابلة للتسلسل في حالة التعارض قابلة للتسلسل أيضًا (ولكن ليس العكس).

قفل ثنائي الطور

وفقًا لبروتوكول القفل ثنائي المرحلة ، تتعامل كل معاملة مع أقفالها في مرحلتين متتاليتين ومتميزتين أثناء تنفيذ المعاملة:

  1. مرحلة التوسع (أو مرحلة النمو): يتم الحصول على الأقفال ولا يتم تحرير أي أقفال (لا يمكن إلا زيادة عدد الأقفال).
  2. مرحلة الانكماش (أو مرحلة التقلص): يتم تحرير الأقفال ولا يتم الحصول على أي أقفال.

يمكن تلخيص قواعد القفل ثنائي المرحلة كما يلي: لا يجوز لأي معاملة الحصول على قفل بعد تحريرها. وتُضمن خاصية التسلسلية لجدول زمني يتضمن معاملات تلتزم بهذه القاعدة.

عادةً، وبدون معرفة صريحة في نهاية المرحلة الأولى من المعاملة، لا يتم تحديد القاعدة بشكل آمن إلا بعد اكتمال معالجة المعاملة وطلب الالتزام. في هذه الحالة، يمكن تحرير جميع الأقفال دفعة واحدة (المرحلة الثانية).

قفل ثنائي الطور محافظ

يختلف نظام القفل المحافظ ثنائي المرحلة (C2PL) عن نظام القفل ثنائي المرحلة (2PL) في أن المعاملات تحصل على جميع الأقفال التي تحتاجها قبل بدء التنفيذ الفعلي. يضمن هذا عدم توقف المعاملة التي تمتلك بالفعل بعض الأقفال في انتظار أقفال أخرى. يمنع نظام C2PL حالات الجمود .

في حالات التنازع الشديد على الأقفال ، يقلل بروتوكول C2PL متوسط ​​مدة الاحتفاظ بالأقفال مقارنةً ببروتوكولي 2PL وStrict 2PL، لأن المعاملات التي تحتفظ بالأقفال لا تُحظر أبدًا. أما في حالات التنازع الخفيف على الأقفال، فيحتفظ بروتوكول C2PL بأقفال أكثر من اللازم، لصعوبة التنبؤ بالأقفال المطلوبة مستقبلًا، مما يؤدي إلى زيادة النفقات العامة.

لن تحصل معاملة C2PL على أي أقفال إذا لم تتمكن من الحصول على جميع الأقفال اللازمة في طلبها الأولي. علاوة على ذلك، تحتاج كل معاملة إلى تحديد مجموعة القراءة والكتابة (عناصر البيانات التي ستُقرأ/تُكتب)، وهو أمر ليس ممكنًا دائمًا. وبسبب هذه القيود، لا يُستخدم C2PL بكثرة.

قفل ثنائي الطور صارم

للامتثال لبروتوكول القفل ثنائي المرحلة الصارم (S2PL)، يجب أن تلتزم المعاملة بهذا البروتوكول، وأن تُحرر أقفال الكتابة (الحصرية) فقط بعد انتهاء المعاملة (أي بعد إتمامها أو إلغائها ). في المقابل، تُحرر أقفال القراءة (المشتركة) بانتظام خلال مرحلة تقليص حجم المعاملة.

على عكس بروتوكول 2PL، يوفر بروتوكول S2PL صرامةً (وهي حالة خاصة من إمكانية الاسترداد دون تسلسل). هذا البروتوكول غير مناسب لأشجار B لأنه يُسبب اختناقًا (بينما تبدأ أشجار B دائمًا البحث من الجذر الأبوي).

قفل ثنائي الطور قوي وصارم

أو الدقة ، أو الجدولة الدقيقة ، أو القفل الدقيق ثنائي الطور

للامتثال لآلية القفل الصارم ثنائي المراحل (SS2PL)، لا تُحرر أقفال القراءة والكتابة للمعاملة إلا بعد انتهائها (أي بعد تأكيدها أو إلغائها). تتضمن المعاملة التي تلتزم بآلية SS2PL المرحلة الأولى فقط، وتفتقر إلى المرحلة الثانية حتى اكتمالها. كل جدول زمني SS2PL هو أيضاً جدول زمني S2PL، ولكن ليس العكس.

انظر أيضاً

مراجع

  1. فيليب أ. بيرنشتاين ، فاسوس هادزيلاكوس، ناثان غودمان (1987): التحكم في التزامن والاستعادة في أنظمة قواعد البيانات ، شركة أديسون ويسلي للنشر، رقم ISBN 0-201-10715-5
  2. ^ جيرهارد ويكوم ، جوتفريد فوسين (2001): نظم معلومات المعاملات ، إلسفير، ISBN 1-55860-508-8