البنية المتماثلة مقابل غير المتماثلة

مكتمل

الاعتبار الثالث في التصميم هو أحد الاعتبارات في الهيكل التنظيمي. عادةً ما يقوم مطور التطبيق بتنظيم أي برنامج موزع ببنية رئيس-تابع (غير متماثلة) أو بنية نظير إلى نظير (متماثلة)، كما هو موضح في الشكل 12. وقد تكون التنظيمات الأخرى، مثل المختلطة، مناسبة لظروف خاصة.1 لغرض هذه الوحدة، نحن مهتمون فقط بتنظيمات رئيس-تابع ونظير إلى نظير.

تنظيم رئيس-تابع غير المتماثل

في تنظيم الرئيس-التابع، تقوم عملية مركزية تسمى الرئيس، بمعالجة كل منطق وعناصر التحكم، ويُشار إلى جميع العمليات الأخرى كعمليات تابعة. وبالتالي، فإن التفاعل بين العمليات غير متماثل: فالاتصالات ثنائية الاتجاه تُمكِّن الرئيس من الاتصال مع كل تابع، ولا يُسمح بالاتصال بين أي تابعين (انظر الشكل 12 (أ)). ويتطلب هذا الموقف من الرئيس أن يتتبع موقع شبكة كل تابع فيما يسمى بنية بيانات التعريف، بالإضافة إلى أنه يمكن لكل تابع أن يتعرف على الرئيس ويحدد موقعه.

الشكل 12: (أ) تنظيم رئيس-تابع. (ب) تنظيم نظير إلى نظير. الرئيس في مثل هذا التنظيم اختياري (عادةً ما يُستخدم لمراقبة النظام و/أو إدخال الأوامر الإدارية).

الشكل 12: (أ) مؤسسة رئيسية تابعة. (ب) تنظيم نظير إلى نظير. الرئيس في مثل هذا التنظيم اختياري (عادةً ما يُستخدم لمراقبة النظام و/أو إدخال الأوامر الإدارية).

في التنظيمات غير المتماثلة، يمكن للرئيس توزيع العمل بين التابعين باستخدام واحد أو اثنين من البروتوكولات التالية:

  • قائم على الدفع: تُعين هذه الاستراتيجية العمل إلى التابعين من جانب واحد، دون طلبهم. ومن الواضح أن هذا الوضع يسمح للرئيس بتطبيق قيود الإنصاف على التابعين من خلال توزيع العمل بالتساوي فيما بينهم. وبالتبادل، يمكن لهذا الترتيب أيضاً أن يغمر/يسبب ازدحاماً للتابعين الذين يعانون حالياً من بطء/إخفاقات، وبالتالي لا يستطيعون مواكبة العمل. وبالتالي، قد يحدث عدم موازنة التحميل، مما يؤدي عادة إلى تدهور الأداء. ومع ذلك، يمكن للرئيس تنفيذ إستراتيجيات ذكية. على وجه الخصوص، يمكن للرئيس تعيين العمل إذا، وفقط إذا، تمت ملاحظة استعداد التابع. ولكي تعمل هذه الطريقة، يجب أن يراقب الرئيس بشكل مستمر جميع التابعين ويطبق بعض المنطق (عادةً ما يكون معقداً) لتحديد التابعين المتوفرين بدقة. للحفاظ على الإنصاف وتحسين الأداء، يجب على الرئيس أيضاً أن يقرر بشأن مقدار العمل المطلوب للتعيين. في السحب، يزداد احتمال حدوث خلل وبطء في العمليات بسبب عدم التجانس، وعدم القدرة على التنبؤ بالأداء، وقابلية التوسع. ويمكن لهذه القيود أن تجعل البروتوكول القائم على الدفع غير فعال على السحابة.
  • القائم على السحب: هذه الاستراتيجية، من ناحية أخرى، تتطلب من التابعين طلب تعيين العمل. وهذا البروتوكول يقلل بشكل كبير من التعقيد ومن المحتمل أن يتجنب عدم موازنة التحميل لأن قرار ما إذا كان تابع معين جاهزاً أم لا يكون بيد التابع نفسه. ومع ذلك، لا يزال الرئيس بحاجة إلى مراقبة التابعين، عادةً لتعقّب التقدم المحرز في المهام عند التابعين و/أو تطبيق آليات التسامح مع الخطأ (على سبيل المثال، لمعالجة المهام الخاطئة والبطيئة بشكلٍ فعّال، التي عادةً ما توجد في السحب واسعة النطاق). ويستخدم Hadoop MapReduce وPregel البروتوكول القائم على السحب.

ولهذا الغرض، نلاحظ أن تنظيم الرئيس-التابع يعاني من نقطة فشل واحدة (SPOF). وعلى وجه التحديد، إذا فشل الرئيس، فإن البرنامج الموزع بالكامل سيتوقف تماماً. وعلاوةً على ذلك، وجود عملية مركزية (الرئيس) للتحكم في كل شيء وإدارته قد لا تتحمل التوسيع على نحو جيد مع وجود بضع مئات من التابعين، ما لم يتم تطبيق إستراتيجيات فعّالة للحد من المنافسة على الاتصال مع الرئيس (على سبيل المثال، التخزين المؤقت لبيانات التعريف عند التابعين، وذلك لتجنّب الوصول إلى الرئيس عند كل طلب). وعلى النقيض من ذلك، فإن استخدام تنظيم الرئيس-التابع يُبسِّط عملية اتخاذ القرار (على سبيل المثال، السماح بمعاملة كتابة على بيانات مشتركة معينة). وعلى وجه الخصوص، دائماً ما يكون الرئيس هو الكيان الوحيد الذي يتحكم في كل شيء، ويمكنه اتخاذ أي قرار بمفرده دون تكلّف عناء التفكير في أي شيء آخر. وهذه البساطة تتفادى استخدام آليات التصويت،3، 1، 2 التي يلزم وجودها عادة عندما يستلزم الأمر أن تقوم مجموعة واحدة من الكيانات (وليس كياناً واحداً) باتخاذ القرارات. والفكرة الأساسية لآليات التصويت هي أن تطلب من إحدى المهام أن تطلب إذن لإجراء معين وتحصل عليه من نصف المهام على الأقل بالإضافة إلى واحدة (أغلبية). وعادةً ما تعقد آليات التصويت تنفيذ البرامج الموزعة.

التنظيم المتماثل نظير إلى نظير

في التنظيمات المتماثلة، تكون جميع المهام متساوية، مع توزيع المنطق، والتحكم، والعمل بالتساوي فيما بينها. وعلى وجه التحديد، يمكن لكل مهمة أن تتصل مباشرةً مع المحيطين بها، دون الحاجة إلى الاتصال بعملية رئيسية (انظر الشكل 12 (ب)). يُمكن اعتماد الرئيس، ولكن فقط لأغراض مثل مراقبة النظام و/أو إدخال الأوامر الإدارية. بتعبيرٍ آخر، لا تتطلب مهام النظير وجود رئيس لتعمل بشكلٍ صحيح. وعلاوة على ذلك، وعلى الرغم من أن المهام تتواصل مع بعضها البعض، فإن عملها يمكن أن يكون مستقلاً تماماً، بل وقد يكون غير مرتبط. كما أن تنظيمات نظير إلى نظير تعمل على إزالة احتمالية ازدحامات SPOF والنطاق الترددي، لذا عادةً ما تقدم مستوى جيداً من قابلية التوسع والتسامح مع الأخطاء. ومع ذلك، يجب أن يتم اتخاذ القرارات في تنظيمات نظير إلى نظير بشكل جماعي، وعادة من خلال آليات التصويت. وعادة ما ينطوي هذا الترتيب على زيادة تعقيد التنفيذ، بالإضافة إلى زيادة مصاريف الاتصالات وزمن انتقالها، خاصة في الأنظمة الكبيرة مثل السحابة. يستخدم GraphLab، الذي نناقشه في أقسام لاحقة، التنظيم نظير إلى نظير.


المراجع

  1. أ. س. تاننباوم وإم. في. ستين (12 أكتوبر 2006). الأنظمة الموزعة: المبادئ والنماذج قاعة برينتيس، النسخة الثانية
  2. آر. إتش. توماس (1979). نهج توافق آراء الأغلبية للتحكم في النسخ المتعدد لقواعد البيانات معاملات ACM على أنظمة قاعدة البيانات (TODS)
  3. د. ك. جيفورد (1979). التصويت المرجح للبيانات المنسوخة نسخاً متماثلاً في وقائع ندوة ACM السابعة بشأن مبادئ أنظمة التشغيل