Eventual Consistency Explained in Depth

إيقاف عمليات الـwrites على الـLeader Replica،  يؤدي بنا بعد وقت ما إلى مرحلة يصبح النظام فيها consistent؛ يعني ذلك أن استمرار عملية الـwrite لا تضمن لنا معرفة، بعد كم من الوقت سنصل إلى حالة الـconsistency، وهل سنصل لها أم لا
Eventual Consistency Explained in Depth

في هذه الصفحة

 في المقال السابق تحدثنا عن الـData Replication ماهي، فائدتها، ولماذا نحتاج لعمل Replicate للبيانات، وتحدثنا عن أول نوع منها وهو الـ Single Leader، وهذا المقال معتمد عليه فلابد من قراءة وفهم المقال السابق.

تحدثنا عن نهج الـLeader-Based Replication لتحقيق الـhigh availability، وبمراجعة مميزات وعيوب الـsync توصلنا إلى أنه الاعتماد عليها بشكل كلي ليس فعال؛ لأنه يجب على الـFollower Replica عمل وارسال Acknowledgment لـ Leader Replica فإذا حدثت مشكلة تسببت في عدم وصول الـ Ack، ستقوم الـ Leader Replica بإيقاف جميع الـ writes حتى تعمل الـ Follower Replica بشكل طبيعي وذلك يسبب عائق في تحقيق معدل عال من الـavailability كما يبين الرسم هنا.

من ذلك استنتجنا أن طريقة الـAsync هي الطريقة الاكثر فاعلية والاكثر عملية: حيث تساعدنا على جعل الـLeader Replica تستقبل الـwrites فقط، وتوزع الأحمال الخاصة بالـreads علي الـFollower Replicas.

وعند زيادة أحمال الRead، سيتم اضافة followers، وتسمى هذه الـArchitecture بـRead-Scaling Architecture، وهذا النهج شائع لمعظم التطبيقات وخاصةً الـWeb applications.

لكن كما ذكرنا في المقال السابق، أن مشكلة استخدام طريقة الـ Async: أن الـLeader Replica لا تنتظر اي Ack من الـFollower Replica؛ مما يعني أنه اذا تم إرسال read request الى الـLeader و الـFollower في الوقت ذاته سيؤدي إلى نتائج مختلفة؛ لإحتواء الـ Follower علي بيانات منتهية الصلاحية، وذلك بسبب عدم وصول التعديلات. ذلك يؤدي بالنظام إلى حالة من التناقض -inconsistency-، والذي يحدث بشكل مؤقت ويسمى بالـ Eventual Consistency.

ما هو الـ Eventual Consistency؟

هذا المقال مخصص للأعضاء المنتسبين لخطط الاشتراك المدفوعة فقط

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

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