لمحة عن عامل نسخ "كاساندرا" ومستوى الاتساق

لمحة عن عامل نسخ "كاساندرا"

تقوم كاساندرا بتخزين النسخ المتماثلة للبيانات على نقاط متعددة لضمان الموثوقية والقدرة على التسامح مع الأخطاء. تحدّد استراتيجية النسخ المماثل لكل مسافة مفتاح في Edge العُقد التي يتم وضع النسخ المتماثلة فيها.

يُشار إلى إجمالي عدد النُسخ المتماثلة لمساحة المفاتيح في مجموعة Cassandra باسم عامل النسخ الخاص بمسافة المفتاح. ويعني عامل النسخ المماثل لأحد الصفوف أنّه هناك نسخة واحدة فقط من كل صف في مجموعة كاساندرا العنقودية. يشير عامل النسخ المماثل لاثنين إلى توفُّر نسختين من كل صف، حيث توجد كل نسخة في عقدة مختلفة. وجميع النسخ المتماثلة مهمة بالقدر نفسه، فلا توجد نسخة مطابقة أساسية أو رئيسية.

في نظام إنتاج يحتوي على ثلاث عُقد أو أكثر من عقدة Cassandra في كل مركز بيانات، يكون عامل النسخ التلقائي لمساحة مفاتيح Edge هو ثلاثة. وكقاعدة عامة، يجب ألا يتجاوز عامل النسخ المماثل عدد عُقد كاساندرا في المجموعة.

اتّبِع الإجراء التالي لعرض مخطط Cassandra الذي يوضّح عامل النسخ المتماثل لكل مسافة مفتاحية على Edge:

  1. سجِّل الدخول إلى عقدة Cassandra.
  2. نفِّذ الأمر التالي:
    /opt/apigee/apigee-cassandra/bin/cassandra-cli -h $(hostname -i) <<< "show schema;"

    حيث تتم مطابقة $(hostname -i) مع عنوان IP لعقدة Cassandra. أو يمكنك استبدال $(hostname -i) بعنوان IP للعقدة.

لكل مسافة مفتاحية، ستظهر لك النتيجة على النحو التالي:

create keyspace kms
  with placement_strategy = 'NetworkTopologyStrategy'
  and strategy_options = {dc-1 : 3}
  and durable_writes = true;

يمكنك ملاحظة أنّه بالنسبة إلى مركز البيانات 1، dc-1، عامل النسخ المماثل التلقائي لمساحة المفاتيح kms هو ثلاثة في عملية تثبيت تتضمّن ثلاث عُقد Cassandra.

في حال إضافة عقد Cassandra إضافية إلى المجموعة، لن يتأثر عامل النسخ المماثل التلقائي.

على سبيل المثال، إذا زاد عدد عُقد Cassandra إلى ستة، وضَعت عامل النسخ المتماثل على ثلاثة، لن تضمن أن يكون لجميع عُقد Cassandra نسخة من جميع البيانات. وإذا تعطلت العقدة، فإن عامل النسخ المماثل الأعلى يعني زيادة احتمال وجود البيانات على العقدة على إحدى العُقد المتبقية. والجانب السلبي من عامل النسخ المماثل هو زيادة وقت الاستجابة لعمليات كتابة البيانات.

لمحة عن مستوى اتساق "كاساندرا"

مستوى اتّساق Cassandra هو الحدّ الأدنى لعدد عُقد Cassandra التي يجب أن توافق على عملية القراءة أو الكتابة قبل اعتبار العملية ناجحة. يمكن تعيين مستويات تناسق مختلفة لمساحات مفاتيح مختلفة في Edge.

عند الاتصال بـ Cassandra لإجراء عمليات القراءة والكتابة، تستخدم عُقد خادم الإدارة ومعالج الرسائل عادةً قيمة Cassandra الخاصة بـ LOCAL_QUORUM لتحديد مستوى الاتّساق لمساحة المفتاح. ومع ذلك، تم تحديد بعض مساحات المفاتيح باستخدام مستوى اتّساق واحد.

العملية الحسابية لقيمة LOCAL_QUORUM لمركز بيانات هي:

LOCAL_QUORUM = (replication_factor/2) + 1

كما هو موضح أعلاه، عامل النسخ المماثل التلقائي لبيئة إنتاج Edge الذي يتضمن ثلاث عقد من Cassandra هو ثلاثة. وبالتالي، فإنّ القيمة التلقائية التي تبلغ LOCAL_QUORUM = (3/2) +1 = 2 (يتم تقريب القيمة إلى عدد صحيح).

إذا كانت قيمة LOCAL_QUORUM = 2، يجب أن تستجيب عُقدان على الأقل من عُقد Cassandra الثلاث في مركز البيانات لعملية القراءة/الكتابة حتى تنجح العملية. بالنسبة إلى مجموعة كاساندرا المكوَّنة من ثلاثة عُقد، يمكن أن تسمح المجموعة بالتالي بأن تتجاهل عقدة واحدة عُقدة في كل مركز بيانات.

من خلال تحديد مستوى الاتّساق على أنّه LOCAL_QUORUM، يتجنّب Edge وقت الاستجابة المطلوب من خلال التحقّق من صحة العمليات في عدّة مراكز بيانات. إذا استخدمت مساحة مفاتيح قيمة Cassandra QUORUM كمستوى اتّساق، يجب التحقّق من صحة عمليات القراءة/الكتابة في جميع مراكز البيانات.

للاطلاع على مستوى التناسق المستخدم في عُقد معالج رسائل Edge أو خادم الإدارة:

  1. سجّل الدخول إلى عقدة معالج الرسائل.
  2. غيِّر إلى الدليل /opt/apigee/edge-message-processor/conf:
    cd /opt/apigee/edge-message-processor/conf
  3. لتحقيق اتساق الكتابة:
    grep -ri "write.consistencylevel" *
  4. لتحقيق اتساق في قراءة المحتوى:
    grep -ri "read.consistencylevel" *
  5. سجّل الدخول إلى عقدة خادم الإدارة.
  6. التغيير إلى الدليل /opt/apigee/edge-management-server/conf:
    cd /opt/apigee/edge-management-server/conf
  7. كرِّر الخطوتين 3 و4.

إذا قمت بإضافة عقد Cassandra إضافية إلى المجموعة، فلن يتأثر مستوى الاتساق.