Quick Overview of CAP Theorem 004

نظرية الـ CAP تُعد من النظريات الرائدة والرئيسية في دراسة النظم الموزعة، فهي توضح بكل بساطة الـ Trade-Offs التي ستفاضل بينها أثناء تصميمك للنظم الموزعة. لذا من الضروري جدًا معرفتها وفهمها جيدًا.
Quick Overview of CAP Theorem 004

في هذه الصفحة

نظرية الـ CAP تُعد من النظريات الرائدة والرئيسية في دراسة النظم الموزعة، فهي توضح بكل بساطة الـ Trade-Offs التي ستفاضل بينها أثناء تصميمك للنظم الموزعة. لذا من الضروري جدًا معرفتها وفهمها جيدًا.

تقول نظرية الـ CAP Theorem الآتي:

أنه يستحيل على النظام أن يحقق أكثر من خاصيتين أثنتين من الثلاث الخصائص الآتية: Consistency, Availability, Partition Tolerance في آنٍ واحد. ولذلك يمكننا القول أن النظام الذي ستقوم بتصميمه إما أن يكون CP, AP

ولكن لماذا لم نذكر الـ CA ؟ 

سنعرف هذا فيما بعد

CAP Theorem

ما هي الـ Consistency ؟

عرفنا سابقًا أن الـ Consistency تعني اتساق البيانات بينها وبين بعض، ولكن يُقصد بالـ Consistency هنا نجاح عملية القراة أو الـ Read Operation في قراءتها لآخر وأحدث التغييرات أي Write Operation وعدم قراءتها لـ Stale Data كما ذكرنا سابقًا.

ما هي الـ Availability ؟

عرفنا سابقًا أن الـ Availability تعني توفر النظام وقدرته على استكمال عمله بنجاح وبدون مشاكل حتى مع حدوث عطل أو مشاكل في أحد العقد أو مكوناته. ولكن يٌقصد به هنا نجاح عملية القراءة أو الـ Read Operation في قراءتها للبيانات بغض النظر عن إن كانت آخر التغييرات الحديثة أم لا. وهذا يعني أنه من الوارد قراءة Stale Data.

ما هي الـ Partition Tolerance ؟

يُقصد بالـ Partition Tolerance هنا استمرار النظام في أداء عمله بشكل جيد حتى مع وجود عطل أو Network Partition أي فقد الاتصال بين العقد أو المكونات وبعضها

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

وهذا هو السبب في عدم ذكرنا للـ CA:

وهذا لإنه إذا فكرنا مليًا سنجد أنه يستحيل على النظام أيًا كان ألا يحتوي على Partition Tolerance فهذا يعني أن ذلك النظام لن يتعطل ولن يكون عرضة لأي Failures وسيواظب عمله مدى الحياة، وهذا بالطبع مستحيل. فلذلك نحن نعتمد على النوعين الآخرين في تصميم النظم الموزعة

اعادة صياغة للـ CAP Theorem

لذلك دعونا نعيد صياغة تعريف الـ CAP Theorem كالآتي: 

أنه في وجود Partition Tolerance أي عند حدوث عطل أو مشكلة في النظام إما سنحافظ على الـ Consistency وبالتالي سنتخلى على الـ Availability وإما سنحافظ على الـ Availability ونتخلى عن الـ Consistency. وهذه هي الـ Trade-Offs التي يجب علينا تحديدها عند تصميم النظم الموزعة. 

 لذا يمكننا أن نرى أنه في حالة الـ CP بما أننا نريد الحفاظ على الـ Consistency عند وجود Partition Tolerance فذلك سيعني بطبيعة الحال وجود Downtime من خلال جعل النظام غير قادر على استقبال الـ

عند حدوث فشل في الاتصال لن يستطيع المستخدم القراءة وذلك لاننا تخيلنا عن الـ A مقابل الحصول على الـ C

 أما في حالة الـ AP فنحن هنا نريد الحفاظ على الـ Availability وتوفر النظام وعدم وجود Downtime للمستخدمين ولكن في هذه الحالة نحن نتخلى عن الـ Consistency وهذا سيؤدي بطبيعة الحال لقراءة Stale Data ولكن في معظم الأنظمة يتم تجاهل ذلك وذلك لإن البيانات ستكون Consistent مع بعضها بمرور الوقت. أي أن هذا النوع يعتمد على الـ Eventual Consistency والذي ذكرناه سابقًا.

عند حدوث فشل في الاتصال سيقرأ المستخدم Stale Data وذلك لإننا نريد الـ A بدلًا من الـ C

اشترك الآن بنشرة اقرأ-تِك الإخبارية

لا تدع أي شيء يفوتك. واحصل على أحدث المقالات المميزة مباشرة إلى بريدك الإلكتروني وبشكل مجاني!
رائع! تحقق من بريدك الإلكتروني واضغط على الرابط لإكمال تسجيل الدخول.
حدث خطأ! من فضلك قم بادخال بريد إلكتروني صحيح!