تكرار آلة الحالة
في علوم الحاسوب ، يُعدّ تكرار آلة الحالة ( SMR ) أو منهج آلة الحالة أسلوبًا عامًا لتنفيذ خدمة مقاومة للأعطال من خلال تكرار الخوادم وتنسيق تفاعلات العملاء مع نسخ الخوادم. كما يوفر هذا المنهج إطارًا لفهم وتصميم بروتوكولات إدارة التكرار. [ 1 ]
تعريف المشكلة
خدمة موزعة
فيما يتعلق بالعملاء والخدمات، تتألف كل خدمة من خادم واحد أو أكثر، وتُصدّر عمليات يستدعيها العملاء عبر إرسال طلبات. ورغم أن استخدام خادم مركزي واحد هو أبسط طريقة لتنفيذ الخدمة، إلا أن قدرة الخدمة الناتجة على تحمل الأعطال تعتمد على قدرة المعالج الذي يُشغّل ذلك الخادم. إذا كان هذا المستوى من تحمل الأعطال غير مقبول، فيمكن استخدام خوادم متعددة تتعطل بشكل مستقل. عادةً، تُشغّل نسخ متماثلة من خادم واحد على معالجات منفصلة ضمن نظام موزّع، وتُستخدم بروتوكولات لتنسيق تفاعلات العملاء مع هذه النسخ.
آلة الحالة
في المناقشة اللاحقة، سيتم تعريف آلة الحالة على أنها مجموعة القيم التالية [ 2 ] (انظر أيضًا آلة ميلي وآلة مور ):
- مجموعة من الولايات
- مجموعة من المدخلات
- مجموعة من المخرجات
- دالة انتقالية (المدخل × الحالة → الحالة)
- دالة الإخراج (المدخلات × الحالة ← المخرجات)
- ولاية متميزة تُدعى ستارت.
تبدأ آلة الحالة من الحالة المسماة "البداية". يمر كل مدخل يتم استقباله عبر دالة الانتقال والإخراج لإنتاج حالة جديدة ومخرج. تبقى الحالة مستقرة حتى يتم استقبال مدخل جديد، بينما يتم إرسال المخرج إلى جهاز الاستقبال المناسب.
تتطلب هذه المناقشة أن تكون آلة الحالة حتمية : تبدأ نسخ متعددة من نفس آلة الحالة في حالة البداية، وستؤدي معالجة نفس المدخلات بنفس الترتيب إلى الوصول إلى نفس الحالة بعد توليد نفس المخرجات.
عادةً، تقوم الأنظمة القائمة على تكرار آلة الحالة بتقييد تطبيقاتها طواعيةً لاستخدام آلات الحالة المحدودة لتبسيط عملية استعادة الأخطاء.
تحمل الأعطال
تُعدّ الحتمية سمة مثالية لتوفير القدرة على تحمل الأعطال. وبشكل بديهي، إذا وُجدت نسخ متعددة من النظام، فإن أي عطل في إحداها سيظهر كاختلاف في الحالة أو المخرجات عن النسخ الأخرى.
الحد الأدنى لعدد النسخ اللازمة لتحمل الأعطال هو ثلاث نسخ؛ نسخة واحدة بها عطل، ونسختان أخريان نقارن بهما الحالة والمخرجات. نسختان غير كافيتين لأنه لا توجد طريقة لتحديد النسخة المعيبة.
يستطيع نظام النسخ الثلاث تحمل عطل واحد على الأكثر (وبعدها يجب إصلاح النسخة المعيبة أو استبدالها). إذا تعطلت أكثر من نسخة، فقد تختلف الحالات والمخرجات الثلاث، ولن يكون هناك سبيل لاختيار النسخة الصحيحة.
بشكل عام، يجب أن يحتوي النظام الذي يدعم F من حالات الفشل على 2F+1 نسخة (تُسمى أيضًا نسخًا متماثلة). [ 3 ] تُستخدم النسخ الإضافية كدليل لتحديد أي النسخ صحيحة وأيها معيبة. يمكن لبعض الحالات الخاصة تحسين هذه الحدود. [ 4 ]
يفترض هذا الاستنتاج أن النسخ المتماثلة لا تواجه سوى أعطال عشوائية مستقلة، مثل أخطاء الذاكرة أو تعطل القرص الصلب. ويمكن أيضاً معالجة الأعطال الناجمة عن النسخ المتماثلة التي تحاول الكذب أو الخداع أو التواطؤ باستخدام أسلوب آلة الحالة، مع إجراء تغييرات معزولة.
لا يُشترط إيقاف النسخ المتماثلة الفاشلة؛ فقد تستمر في العمل، بما في ذلك توليد مخرجات زائفة أو غير صحيحة.
حالة خاصة: إيقاف عند الفشل
نظرياً، إذا كان من المضمون أن تتوقف النسخة المعطلة دون توليد أي مخرجات، فإن الحاجة تقتصر على F+1 نسخة فقط، ويمكن للعملاء قبول أول مخرج يولده النظام. لا توجد أنظمة حالية تحقق هذا الحد، ولكنه يُستخدم غالباً عند تحليل الأنظمة المبنية على طبقة مقاومة للأعطال (حيث توفر هذه الطبقة دلالات التوقف عند الفشل لجميع الطبقات التي تعلوها).
حالة خاصة: فشل بيزنطي
تُسمى الأعطال التي تُرسل فيها نسخةٌ ما قيمًا مختلفةً في اتجاهاتٍ مختلفة (على سبيل المثال، إرسال المخرجات الصحيحة إلى بعض النسخ الأخرى، والمخرجات الخاطئة إلى نسخٍ أخرى) بالأعطال البيزنطية . [ 5 ] قد تكون الأعطال البيزنطية عشوائيةً أو زائفةً، أو ناتجةً عن هجماتٍ خبيثةٍ ذكية. يكفي وجود نسختين متماثلتين + نسخة واحدة (2F+1) مع استخدام تجزئات غير تشفيرية لتجاوز جميع الأعطال البيزنطية غير الخبيثة ( باحتمالية عالية ). تتطلب الهجمات الخبيثة استخدام أدوات تشفيرية لتحقيق 2F+1 (باستخدام توقيعات الرسائل)، أو يمكن تطبيق تقنيات غير تشفيرية، ولكن يجب زيادة عدد النسخ المتماثلة إلى 3F+1. [ 5 ]
نهج آلة الحالة
يشير النقاش البديهي السابق إلى تقنية بسيطة لتنفيذ خدمة مقاومة للأعطال من حيث آلة الحالة:
- ضع نسخًا من آلة الحالة على خوادم متعددة ومستقلة.
- استقبال طلبات العملاء، وتفسيرها كمدخلات لآلة الحالة.
- اختر ترتيبًا للمدخلات.
- قم بتنفيذ المدخلات بالترتيب المختار على كل خادم.
- قم بالرد على العملاء باستخدام مخرجات آلة الحالة.
- قم بمراقبة النسخ المتماثلة بحثًا عن اختلافات في الحالة أو المخرجات.
يتناول الجزء المتبقي من هذه المقالة تفاصيل هذه التقنية.
- الخطوتان 1 و 2 خارجتان عن نطاق هذه المقالة.
- الخطوة الثالثة هي العملية الحاسمة، انظر قسم طلب المدخلات .
- الخطوة الرابعة مشمولة بتعريف آلة الحالة .
- الخطوة 5، انظر إرسال المخرجات .
- الخطوة 6، انظر التدقيق واكتشاف الأعطال .
يحتوي الملحق على مناقشة حول الامتدادات النموذجية المستخدمة في أنظمة العالم الحقيقي مثل التسجيل ، ونقاط التفتيش ، وإعادة التكوين ، ونقل الحالة .
طلب المدخلات
تُعدّ الخطوة الحاسمة في بناء نظام موزّع لآلات الحالة هي اختيار ترتيب معالجة المدخلات. بما أن جميع النسخ غير المعيبة ستصل إلى نفس الحالة والمخرجات إذا ما أُعطيت نفس المدخلات، فمن الضروري تقديم المدخلات بترتيب مكافئ في كل نسخة. وقد طُرحت العديد من الحلول في الأدبيات. [ 2 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ]
القناة المرئية هي مسار اتصال بين كيانين يشاركان بنشاط في النظام (مثل العملاء والخوادم). مثال: من العميل إلى الخادم، ومن الخادم إلى الخادم
القناة المخفية هي مسار اتصال لا يُكشف عنه للنظام. مثال: عادةً ما تكون قنوات الاتصال بين العملاء مخفية؛ مثل المستخدمين الذين يتواصلون عبر الهاتف، أو عملية تكتب ملفات على القرص وتقرأها عملية أخرى.
عندما تكون جميع مسارات الاتصال قنوات مرئية ولا توجد قنوات مخفية، يمكن استنتاج ترتيب عالمي جزئي ( ترتيب سببي ) من نمط الاتصالات. [ 8 ] [ 10 ] يمكن لكل خادم استخلاص الترتيب السببي بشكل مستقل. يمكن تنفيذ مدخلات آلة الحالة وفقًا للترتيب السببي، مما يضمن اتساق الحالة والمخرجات لجميع النسخ غير المعيبة.
في الأنظمة المفتوحة، تُعدّ القنوات المخفية شائعة، ويجب استخدام شكل أضعف من الترتيب. يمكن تحديد ترتيب المدخلات باستخدام بروتوكول تصويت تعتمد نتائجه فقط على القنوات المرئية.
تُسمى مشكلة التصويت على قيمة واحدة من قِبل مجموعة من الكيانات المستقلة بالتوافق . وبشكل أوسع، يمكن اختيار سلسلة من القيم من خلال سلسلة من حالات التوافق. وتزداد هذه المشكلة تعقيدًا عندما يتعرض المشاركون أو وسيلة الاتصال الخاصة بهم لأعطال. [ 3 ]
يمكن ترتيب المدخلات حسب موقعها في سلسلة حالات الإجماع ( ترتيب الإجماع ). [ 7 ] يمكن لكل خادم استخلاص ترتيب الإجماع بشكل مستقل. يمكن تنفيذ مدخلات آلة الحالة وفقًا لترتيب الإجماع، مما يضمن اتساق الحالة والمخرجات لجميع النسخ غير المعيبة.
- تحسين الترتيب السببي والتوافقي
- في بعض الحالات، تتوفر معلومات إضافية (مثل الساعات الزمنية الحقيقية). في هذه الحالات، يُمكن تحقيق ترتيب سببي أو توافقي أكثر كفاءة للمدخلات، مع تقليل عدد الرسائل، أو تقليل عدد جولات الرسائل، أو تصغير حجم الرسائل. راجع المراجع لمزيد من التفاصيل [ 1 ] [ 4 ] [ 6 ] [ 11 ] .
- تتوفر تحسينات إضافية عند مراعاة دلالات عمليات آلة الحالة (مثل عمليات القراءة مقابل عمليات الكتابة). انظر المراجع: باكسوس المعمم . [ 2 ] [ 12 ]
بينما يفرض نظام إدارة السجلات الموزعة التقليدي عادةً ترتيبًا كليًا للطلبات، تُظهر الأبحاث الحديثة في مجال السجلات الموزعة المجزأة أن الترتيب الجزئي كافٍ لتحقيق الاتساق عندما لا تتعارض المعاملات. تسمح نماذج التبعية القائمة على الرسوم البيانية، كتلك المستخدمة في بروتوكول سيربيروس، بانتقالات الحالة غير المتعارضة بالتوازي عبر نسخ متعددة، متجاوزةً بذلك قيود الإنتاجية لسجل خطي واحد. [ 13 ]
إرسال المخرجات
تُفسَّر طلبات العميل كمدخلات لآلة الحالة، وتُعالَج لتُصبح مخرجات بالترتيب المناسب. تُولِّد كل نسخة مُستنسخة مُخرجًا بشكل مستقل. تُنتج النسخ غير المعيبة دائمًا نفس المُخرج. قبل إرسال استجابة العميل، يجب تصفية المُخرجات المعيبة. عادةً، تُعيد أغلبية النسخ نفس المُخرج، ويُرسَل هذا المُخرج كاستجابة للعميل.
عطل في النظام
- إذا لم تكن هناك أغلبية من النسخ المتماثلة بنفس المخرجات، أو إذا كانت أقل من أغلبية النسخ المتماثلة تُرجع مخرجات، فهذا يعني حدوث عطل في النظام. يجب أن تكون استجابة العميل هي المخرجات الفريدة: فشل.
التدقيق واكتشاف الأعطال
يُطلق على الاختراق الدائم وغير المخطط له للنسخة اسم الفشل . ويصعب الحصول على دليل على الفشل، إذ قد تكون النسخة بطيئة الاستجابة فحسب، [ 14 ] أو حتى تكذب بشأن حالتها. [ 5 ]
ستحتوي النسخ غير المعيبة دائمًا على نفس الحالة وستُنتج نفس المخرجات. يُمكّن هذا الثبات من اكتشاف الأعطال من خلال مقارنة حالات ومخرجات جميع النسخ. عادةً، تُعتبر النسخة التي تختلف حالتها أو مخرجاتها عن غالبية النسخ معيبة.
تتمثل إحدى الطرق الشائعة في تمرير قيم التحقق من حالة النسخة المتماثلة الحالية والمخرجات الأخيرة بين الخوادم. وفي حال اكتشاف أي انحراف، تُعيد عملية تدقيق في كل خادم تشغيل النسخة المتماثلة المحلية. [ 15 ] ولا يُشترط استخدام التشفير لأغراض التحقق من الحالة.
من المحتمل أن يكون الخادم المحلي مخترقًا، أو أن عملية التدقيق معيبة، وأن النسخة المتماثلة تستمر في العمل بشكل غير صحيح. يتم التعامل مع هذه الحالة بأمان بواسطة مرشح الإخراج الموصوف سابقًا (انظر إرسال المخرجات ).
الملحق: الإضافات
سجل الإدخال
في نظام خالٍ من الأعطال، يمكن تجاهل المدخلات بعد معالجتها بواسطة آلة الحالة. يجب أن تعوض عمليات النشر الواقعية عن السلوكيات العابرة غير المرتبطة بالأعطال في النظام، مثل فقدان الرسائل، وانقطاعات الشبكة، وبطء المعالجات. [ 15 ]
تتمثل إحدى التقنيات في تخزين سلسلة المدخلات في سجل. خلال فترات السلوك العابر، قد تطلب النسخ المتماثلة نسخًا من إدخال السجل من نسخة متماثلة أخرى لملء المدخلات المفقودة. [ 7 ]
بشكل عام، لا يُشترط أن يكون سجل النظام دائمًا (يمكن تخزينه في الذاكرة). قد يُعوض السجل الدائم فترات التوقف المؤقتة الطويلة، أو يدعم ميزات النظام الإضافية مثل نقاط التحقق وإعادة التكوين .
نقاط التفتيش
إذا تُرك سجل الأحداث دون مراقبة، فسيزداد حجمه حتى يستنفد جميع موارد التخزين المتاحة. ولضمان استمرارية العمل، من الضروري حذف بعض إدخالات السجل. وبشكل عام، يمكن حذف إدخال السجل عندما يصبح محتواه غير ذي صلة (على سبيل المثال، إذا قامت جميع النسخ المتماثلة بمعالجة مُدخل ما، فلن تكون هناك حاجة لمعرفة هذا المُدخل).
تتمثل إحدى التقنيات الشائعة للتحكم في حجم السجل في تخزين حالة مكررة (تسمى نقطة تفتيش )، ثم حذف أي إدخالات سجل ساهمت في نقطة التفتيش. يوفر هذا مساحة عندما تكون الحالة المكررة أصغر من حجم السجل.
يمكن إضافة نقاط تفتيش إلى أي آلة حالة من خلال دعم مدخل إضافي يُسمى CHECKPOINT . تحتفظ كل نسخة بنقطة تفتيش بالإضافة إلى قيمة الحالة الحالية. عندما يزداد حجم سجل الأحداث، تُرسل النسخة أمر CHECKPOINT تمامًا كما لو كانت طلبًا من العميل. يضمن النظام أن تُعالج النسخ السليمة هذا الأمر بنفس الترتيب، وبعد ذلك قد يتم تجاهل جميع إدخالات السجل قبل نقطة التفتيش.
في نظام مزود بنقاط تفتيش، يتم تجاهل طلبات إدخالات السجل التي حدثت قبل نقطة التفتيش. النسخ المتماثلة التي لا تستطيع العثور على نسخ من إدخال السجل المطلوب تعتبر معيبة ويجب إعادة انضمامها إلى النظام (انظر إعادة التكوين ).
إعادة التكوين
تتيح إعادة التكوين إضافة نسخ متماثلة وإزالتها من النظام مع استمرار معالجة طلبات العملاء. تُعد الصيانة المخططة وفشل النسخ المتماثلة من الأمثلة الشائعة على إعادة التكوين. تتضمن إعادة التكوين إنهاء عملية الانضمام ثم إعادة تشغيلها .
الاستقالة
عندما يكتشف الخادم وجود خلل في حالته أو مخرجاته (انظر قسم التدقيق واكتشاف الأعطال )، فإنه قد يُنهي عمله بشكل انتقائي. وبالمثل، يمكن للمسؤول تنفيذ أمر يدوي لإزالة نسخة احتياطية لأغراض الصيانة.
تمت إضافة مدخل جديد إلى آلة الحالة يُسمى QUIT . [ 2 ] [ 6 ] تُرسل النسخة المتماثلة هذا الأمر إلى النظام تمامًا كما لو كانت طلبًا من العميل. تقوم جميع النسخ المتماثلة السليمة بإزالة النسخة المتماثلة التي تُنهي عملها من النظام عند معالجة هذا المدخل. خلال هذه الفترة، قد تتجاهل النسخة المتماثلة جميع رسائل البروتوكول. إذا بقيت أغلبية النسخ المتماثلة السليمة، يكون إنهاء العمل ناجحًا. وإلا، يحدث عطل في النظام .
الانضمام
بعد الخروج، قد يُعاد تشغيل الخادم المعطل أو يُعاد انضمامه إلى النظام بشكل انتقائي. وبالمثل، يمكن للمسؤول إضافة نسخة جديدة إلى المجموعة لزيادة السعة.
تُضاف مدخلة جديدة إلى آلة الحالة تُسمى "انضمام" . تُرسل النسخة المتماثلة هذا الأمر إلى النظام تمامًا كما لو كانت طلبًا من العميل. تُضيف جميع النسخ المتماثلة غير المعيبة عقدة الانضمام إلى النظام عند معالجة هذه المدخلة. يجب أن تكون النسخة المتماثلة الجديدة مُحدّثة على حالة النظام قبل الانضمام (انظر نقل الحالة ).
نقل الحالة
عند إتاحة نسخة جديدة أو إعادة تشغيل نسخة قديمة، يجب تحديثها إلى الحالة الحالية قبل معالجة المدخلات (انظر قسم الربط ). منطقياً، يتطلب ذلك تطبيق كل مدخل منذ بداية النظام بالترتيب المناسب.
تُختصر عمليات النشر النموذجية التدفق المنطقي عن طريق نقل حالة أحدث نقطة تحقق (انظر نقاط التحقق ). يتضمن ذلك نسخ حالة نسخة طبق الأصل إلى أخرى مباشرةً باستخدام بروتوكول خارج النطاق.
قد تكون نقطة التفتيش كبيرة، مما يتطلب فترة نقل طويلة. خلال هذه الفترة، قد تُضاف مدخلات جديدة إلى السجل. في هذه الحالة، يجب على النسخة الجديدة أيضًا استقبال هذه المدخلات الجديدة وتطبيقها بعد استلام نقطة التفتيش. في عمليات النشر المعتادة، تُضاف النسخة الجديدة كمراقب لبروتوكول الترتيب قبل بدء نقل الحالة، مما يسمح لها بجمع المدخلات خلال هذه الفترة.
تحسين نقل الحالة
تُقلل عمليات النشر الشائعة من أوقات نقل الحالة عن طريق إرسال مكونات الحالة المختلفة فقط. يتطلب هذا معرفة بتفاصيل آلة الحالة الداخلية. وبما أن نقل الحالة عادةً ما يكون بروتوكولًا خارج النطاق، فإن هذا الافتراض ليس صعبًا تحقيقه.
يُعد الضغط ميزة أخرى تُضاف عادةً إلى بروتوكولات نقل الحالة، مما يقلل من حجم النقل الكلي.
انتخابات القيادة (لباكسوس)
Paxos [ 7 ] هو بروتوكول لحل الإجماع، ويمكن استخدامه كبروتوكول لتنفيذ نظام الإجماع.
يتطلب بروتوكول باكسوس قائدًا واحدًا لضمان استمرارية عمل النظام. [ 7 ] أي أن إحدى النسخ المتماثلة يجب أن تبقى قائدة لفترة كافية لتحقيق توافق في الآراء بشأن العملية التالية لآلة الحالة. لا يتأثر سلوك النظام إذا تغير القائد بعد كل عملية، أو إذا تغير عدة مرات في العملية الواحدة. الشرط الوحيد هو أن تبقى نسخة متماثلة واحدة قائدة لفترة كافية لدفع النظام قدمًا.
حل النزاعات
بشكل عام، لا يكون القائد ضرورياً إلا عند وجود خلاف حول العملية التي يجب تنفيذها، [ 11 ] وإذا تعارضت تلك العمليات بطريقة ما (على سبيل المثال، إذا لم تكن متوافقة). [ 12 ]
عندما يتم اقتراح عمليات متضاربة، يتصرف القائد كسلطة وحيدة لتصحيح الأمور، وتحديد ترتيب العمليات، مما يسمح للنظام بإحراز تقدم.
في بروتوكول باكسوس، قد تعتقد نسخ متعددة أنها قائدة في الوقت نفسه. هذه الخاصية تجعل عملية اختيار القائد في باكسوس بسيطة للغاية، وأي خوارزمية تضمن وجود "قائد نهائي" ستنجح.
الخلفية التاريخية
نشر عدد من الباحثين مقالات حول منهجية آلة الحالة المتكررة في أوائل ثمانينيات القرن العشرين. وصفت أنيتا بورغ تطبيقًا لنظام تشغيل مقاوم للأعطال قائم على آلات الحالة المتكررة في ورقة بحثية عام 1983 بعنوان " نظام رسائل يدعم مقاومة الأعطال" . [ 16 ] كما اقترح ليزلي لامبورت منهجية آلة الحالة في ورقته البحثية عام 1984 بعنوان "استخدام الوقت بدلًا من مهلة الانتظار في الأنظمة الموزعة" . وفي وقت لاحق، فصّل فريد شنايدر هذه المنهجية في ورقته البحثية "تنفيذ خدمات مقاومة للأعطال باستخدام منهجية آلة الحالة: دليل إرشادي" .
قام كين بيرمان بتطوير نموذج التزامن الافتراضي في سلسلة من الأوراق البحثية التي نُشرت بين عامي 1985 و1987. المرجع الأساسي لهذا العمل هو "استغلال التزامن الافتراضي في الأنظمة الموزعة" ، والذي يصف مجموعة أدوات Isis، وهو نظام تم استخدامه لبناء بورصتي نيويورك وسويسرا، ونظام مراقبة الحركة الجوية الفرنسي، وسفينة حربية من طراز AEGIS تابعة للبحرية الأمريكية، وتطبيقات أخرى.
استخدم العمل الأخير الذي قام به ميغيل كاسترو وباربرا ليسكوف نهج آلة الحالة فيما يسمونه بنية "تحمل الأخطاء البيزنطية العملية" التي تقوم بتكرار الخدمات الحساسة بشكل خاص باستخدام نسخة من نهج آلة الحالة الأصلي للامبورت، ولكن مع تحسينات تعمل على تحسين الأداء بشكل كبير.
في الآونة الأخيرة، تم تطوير مكتبة BFT-SMaRt [ 17 ] ، وهي مكتبة عالية الأداء لنسخ حالة الآلة، تتميز بتحملها للأخطاء البيزنطية، ومطورة بلغة جافا. تُنفذ هذه المكتبة بروتوكولًا مشابهًا جدًا لبروتوكول PBFT، بالإضافة إلى بروتوكولات تكميلية تُتيح نقل الحالة وإعادة تكوين المضيفين أثناء التشغيل (أي عمليات الانضمام والمغادرة). تُعد BFT-SMaRt أحدث الجهود المبذولة لتنفيذ نسخ حالة الآلة، ولا تزال تحظى بدعم مستمر.
تم تطوير خوارزمية Raft ، وهي خوارزمية قائمة على التوافق، في عام 2013.
تم تقديم Tendermint BFT [ 18 ] بدافع من PBFT للشبكات غير المتزامنة جزئيًا، ويتم استخدامه بشكل أساسي لسلاسل الكتل لإثبات الحصة .
مراجع
- 1 2 شنايدر، فريد (1990). "تنفيذ خدمات مقاومة للأعطال باستخدام منهج آلة الحالة: دليل تعليمي" (PS) . مجلة ACM Computing Surveys . 22 (4): 299-319 . CiteSeerX 10.1.1.69.1536 . doi : 10.1145/98163.98167 . S2CID 678818 .
- 1 2 3 4 لامبورت، ليزلي (1978). "تنفيذ أنظمة المعالجة المتعددة الموزعة الموثوقة" . شبكات الحاسوب . 2 (2): 95-114 . doi : 10.1016/0376-5075(78)90045-4 . تاريخ الاسترجاع: 13 مارس 2008 .
- 1 2 لامبورت، ليزلي (2004). "الحدود الدنيا للتوافق غير المتزامن" .
- 1 2 لامبورت، ليزلي؛ مايك ماسا (2004). "باكسوس الرخيص". المؤتمر الدولي للأنظمة والشبكات الموثوقة، 2004. ص 307-314 . doi : 10.1109/DSN.2004.1311900 . ISBN 978-0-7695-2052-0. S2CID 1325830 .
- 1 2 3 لامبورت، ليزلي؛ روبرت شوستاك؛ مارشال بيس (يوليو 1982). "مشكلة الجنرالات البيزنطيين" . معاملات ACM في لغات البرمجة والأنظمة . 4 (3): 382-401 . CiteSeerX 10.1.1.64.2312 . doi : 10.1145/357172.357176 . S2CID 55899582. تاريخ الاسترجاع: 2007-02-02 .
- 1 2 3 لامبورت، ليزلي (1984). "استخدام الوقت بدلاً من مهلة الانتظار للأنظمة الموزعة المقاومة للأعطال" . معاملات ACM في لغات البرمجة والأنظمة . 6 (2): 254-280 . CiteSeerX 10.1.1.71.1078 . doi : 10.1145/2993.2994 . S2CID 402171. تاريخ الاسترجاع: 13 مارس 2008 .
- 1 2 3 4 5 لامبورت، ليزلي (مايو 1998). "البرلمان بدوام جزئي" . معاملات ACM لأنظمة الحاسوب . 16 (2): 133-169 . doi : 10.1145/279227.279229 . S2CID 421028. تاريخ الاسترجاع : 2007-02-02 .
- 1 2 بيرمان، كينيث؛ توماس جوزيف (1987). "استغلال التزامن الافتراضي في الأنظمة الموزعة". مجلة ACM SIGOPS لأنظمة التشغيل . 21 (5): 123-138 . doi : 10.1145/37499.37515 . hdl : 1813/6651 .
- ↑ لامبسون، بتلر (1996). "كيفية بناء نظام عالي التوافر باستخدام الإجماع" . تم الاسترجاع في 13 مارس 2008 .
- ↑ لامبورت، ليزلي (يوليو 1978). "الوقت والساعات وترتيب الأحداث في نظام موزع" . اتصالات رابطة آلات الحوسبة . 21 (7): 558-565 . doi : 10.1145/359545.359563 . S2CID 215822405. تاريخ الاسترجاع : 2007-02-02 .
- 1 2 لامبورت، ليزلي (2005). "باكسوس سريع" .
- 1 2 لامبورت، ليزلي (2005). الإجماع المعمم وباكسوس (تقرير فني). مايكروسوفت للأبحاث. MSR-TR-2005-33.
- ↑ هيلينغز، جيلي؛ سادوغي، محمد (2021). "سيربيروس: معالجة معاملات بسيطة متعددة الأجزاء مقاومة للأخطاء البيزنطية" (ملف PDF) . وقائع مؤسسة VLDB . 14 (11): 2230-2243 . arXiv : 2202.04522 . doi : 10.14778/3476249.3476274 .
- ↑ فيشر، مايكل جيه؛ نانسي أ. لينش؛ مايكل س. باترسون (1985). "استحالة التوافق الموزع مع وجود عملية معيبة واحدة" . مجلة رابطة آلات الحوسبة . 32 (2): 347-382 . doi : 10.1145/3149.214121 . hdl : 1721.1/149560 . S2CID 207660233. تاريخ الاسترجاع: 13 مارس 2008 .
- 1 2 تشاندرا، توشار؛ روبرت غريسمر؛ جوشوا ريدستون (2007). "باكسوس مُفعّل". وقائع الندوة السنوية السادسة والعشرين لجمعية آلات الحوسبة حول مبادئ الحوسبة الموزعة (ملف PDF) . الصفحات 398-407 . doi : 10.1145/1281100.1281103 . ISBN 9781595936165. S2CID 207164635 .
- ↑ بورغ، أ.؛ باومباخ، ج.؛ جلازر، س. (1983). نظام رسائل يدعم تحمل الأعطال (ملف PDF) . ندوة حول مبادئ أنظمة التشغيل. ص 90-99 . doi : 10.1145/800217.806616 .
- ↑ BFT-SMaRt . مستودع Google Code لمكتبة النسخ المتماثل BFT-SMaRt.
- ↑ بوخمان، إي.؛ كوون، ج.؛ ميلوسيفيتش، ز. (2018). "آخر الشائعات حول إجماع BFT". arXiv : 1807.04938 [ cs.DC ].
روابط خارجية
- فيديو عن آلات الحالة المتكررة على قناة MIT TechTV
- أباتشي بوك كيبر هي خدمة سجلات متكررة يمكن استخدامها لبناء آلات حالة متكررة
- مشاكل الحوسبة الموزعة
- مزامنة البيانات
- أنظمة حاسوبية مقاومة للأعطال
