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

الإصدار 4.18.05 من Edge for Private Cloud

لمحة عن عامل النسخ المتماثل في Cassandra

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

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

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

استخدِم الإجراء التالي لعرض مخطط 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 على أنّه الحد الأدنى لعدد عُقد 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 الثلاث في مركز البيانات لعملية القراءة/الكتابة حتى تنجح العملية. بالنسبة إلى مجموعة Cassandra التي تتألف من ثلاث عُقد، يمكن أن تتحمّل المجموعة تعطُّل عقدة واحدة لكل مركز بيانات.

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

للاطّلاع على مستوى الاتساق الذي تستخدمه عُقد Edge Message Processor أو Management Server:

  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 إضافية إلى المجموعة، لن يتأثر مستوى الاتساق.