بروتوكول الالتزام ثلاثي المراحل
في مجال شبكات الحاسوب وقواعد البيانات الموزعة ، يُعد بروتوكول الالتزام ثلاثي المراحل ( 3PC ) [ 1 ] خوارزمية موزعة تضمن موافقة جميع العقد في النظام على إتمام المعاملة أو إلغائها . وهو يُحسّن بروتوكول الالتزام ثنائي المراحل (2PC) من خلال إزالة إمكانية حدوث حظر غير محدد ناتج عن نوع معين من الأعطال أثناء مرحلة الالتزام.
تحفيز
لا يمكن لبروتوكول الالتزام ثنائي المراحل أن يتعافى بشكل موثوق من فشل كل من المنسق وأحد أعضاء المجموعة خلال مرحلة الالتزام . فإذا فشل المنسق فقط، ولم يتلق أي من أعضاء المجموعة رسالة التزام، يمكن الاستنتاج بأمان أنه لم يتم الالتزام. أما إذا فشل كل من المنسق وأحد أعضاء المجموعة، فمن المحتمل أن يكون العضو الفاشل هو أول من تم إخطاره، وأنه هو من قام بالفعل بالالتزام. وحتى في حال اختيار منسق جديد، لا يمكنه المضي قدمًا في العملية بثقة إلا بعد الحصول على موافقة جميع أعضاء المجموعة، وبالتالي يجب عليه التوقف حتى يستجيب جميع أعضاء المجموعة.
يُزيل بروتوكول الالتزام ثلاثي المراحل هذه المشكلة من خلال إدخال حالة "جاهز للالتزام". إذا فشل المنسق قبل إرسال رسائل "preCommit"، فإن المجموعة ستوافق بالإجماع على أن العملية قد أُجهضت. ولن يُرسل المنسق رسالة "doCommit" حتى يُؤكد جميع أعضاء المجموعة استعدادهم للالتزام . هذا يُلغي احتمال أن يكون أي عضو في المجموعة قد أكمل المعاملة فعليًا قبل أن يكون جميع أعضاء المجموعة على دراية بقرار القيام بذلك (وهو غموض استلزم حظرًا غير محدد في بروتوكول الالتزام ثنائي المراحل ).
حل
تساعد مرحلة ما قبل الالتزام المذكورة أعلاه النظام على التعافي في حال فشل أحد المشاركين أو كليهما (المنسق والمشارك) أثناء مرحلة الالتزام. عندما يتولى منسق التعافي زمام الأمور بعد فشل المنسق السابق خلال مرحلة الالتزام في عملية الالتزام ثنائية المراحل ، تصبح مرحلة ما قبل الالتزام الجديدة مفيدة على النحو التالي: عند الاستعلام من المشاركين، إذا تبين أن بعض العقد في مرحلة الالتزام، فإنه يفترض أن المنسق السابق قبل تعطل النظام قد اتخذ قرار الالتزام. وبالتالي، يمكنه توجيه البروتوكول للالتزام. وبالمثل، إذا أفاد أحد المشاركين بأنه لم يتلق رسالة "الاستعداد للالتزام"، فيمكن للمنسق الجديد أن يفترض أن المنسق السابق قد فشل حتى قبل إكمال مرحلة "الاستعداد للالتزام". وبالتالي، يمكنه أن يفترض بأمان أن أيًا من المشاركين لم يلتزم بالتغييرات، ومن ثم إجهاض العملية بأمان.
الإضافات
باستخدام بروتوكول الالتزام ثلاثي المراحل الأصلي لسكين، من الممكن أن يتصل النصاب القانوني دون أن يتمكن من إحراز تقدم (وهذه ليست حالة جمود؛ سيستمر النظام في التقدم إذا تم حل مشكلة تقسيم الشبكة). يُحسّن بروتوكول E3PC [ 2 ] الذي طوره كيدار ودوليف بروتوكول الالتزام ثلاثي المراحل لسكين، ويحل هذه المشكلة بطريقة تسمح دائمًا للنصاب القانوني بإحراز تقدم.
العيوب
يفترض الالتزام ثلاثي المراحل وجود شبكة ذات تأخير محدود وعُقد ذات أوقات استجابة محدودة؛ في معظم الأنظمة العملية ذات التأخير الشبكي غير المحدود وفترات توقف العمليات، لا يمكنه ضمان الذرية. من عيوب البروتوكول الأخرى أنه يتطلب ثلاث رحلات ذهاب وإياب على الأقل لإتمام العملية، مما يستلزم ثلاث أوقات ذهاب وإياب كحد أدنى. وهذا قد يؤدي إلى زمن استجابة طويل لإتمام كل معاملة.
مراجع
- ↑ سكين، ديل (فبراير 1982). بروتوكول الالتزام القائم على النصاب (تقرير فني). قسم علوم الحاسوب، جامعة كورنيل.
- ↑ كيدار، إيديت ؛ داني دوليف (ديسمبر 1998). "زيادة مرونة أنظمة قواعد البيانات الموزعة والمكررة" . مجلة علوم الحاسوب والنظم . 57 (3): 309-324 . doi : 10.1006/jcss.1998.1566 .
انظر أيضاً
- معالجة المعاملات
