Milvus CDC

يقوم Milvus CDC (التقاط تغييرات البيانات) بنسخ تغييرات البيانات من مجموعة Milvus إلى أخرى. يمكنك استخدام CDC لإنشاء بنية استعادة البيانات بعد الكوارث من النوع "الأساسي-الاحتياطي" لـ Milvus.

في بنية «الأساسي-الاحتياطي»، تعمل إحدى المجموعات كمجموعة أساسية وتقبل عمليات الكتابة. وتستقبل مجموعة احتياطية واحدة أو أكثر التغييرات باستمرار من المجموعة الأساسية ويمكنها تلبية حركة القراءة. وعندما تصبح المجموعة الأساسية غير متاحة أو تحتاج إلى صيانة، يمكنك تحويل حركة الخدمة إلى مجموعة احتياطية.

البنية

تتضمن البنية النموذجية ما يلي:

  • المجموعة الرئيسية: المجموعة المصدر للنسخ المتماثل. وهي تقبل عمليات القراءة والكتابة.
  • المجموعة الاحتياطية: المجموعة المستهدفة للنسخ المتماثل. تتلقى التغييرات من المجموعة الرئيسية وتكون للقراءة فقط طالما ظلت في وضع الاحتياط.
  • عقدة CDC: مكون من مكونات Milvus يقوم بإعادة توجيه تغييرات WAL من المجموعة الرئيسية الحالية إلى المجموعات الاحتياطية. قم بنشر CDC على كل مجموعة قد تصبح رئيسية بعد التبديل أو التحويل التلقائي.
  • بنية النسخ المتماثل: العلاقة المُعدة بين المصدر والهدف، مثل المجموعة-أ -> المجموعة-ب. فيما يلي رسم توضيحي للبنية. CDC workflow سير عمل CDC

الطوبولوجيات المدعومة

أكثر طرق نشر CDC شيوعًا هي وجود مجموعة رئيسية واحدة ومجموعة احتياطية واحدة:

Application writes
      |
      v
Primary cluster A  -- CDC replication -->  Standby cluster B

يدعم Milvus CDC أيضًا طوبولوجيا رئيسية واحدة وعدة مجموعات احتياطية:

Primary cluster A  -- CDC replication -->  Standby cluster B
                  \-- CDC replication -->  Standby cluster C

لا يدعم Milvus CDC عمليات النشر ذات الخوادم الرئيسية المتعددة أو النشر بنمط «نشط-نشط»، حيث تقبل مجموعتان أو أكثر من المجموعات حركة الكتابة في نفس الوقت.

سلوك الخادم الأساسي والخادم الاحتياطي

الدورعمليات القراءةالكتابةسلوك النسخ المتماثل
الأساسينعمنعميرسل التغييرات إلى مجموعات الاحتياط
الاحتياطينعملايستقبل التغييرات المنسوخة من المجموعة الأساسية

ترفض المجموعة الاحتياطية طلبات الكتابة المباشرة. وهذا يمنع حدوث "انقسام الدماغ" ويحافظ على اتساق بنية النسخ المتماثل.

التحويل المخطط مقابل التحويل التلقائي

يوفر Milvus CDC طريقتين لنقل حركة مرور الخدمة من المجموعة الأساسية الحالية إلى المجموعة الاحتياطية.

العمليةيُستخدم عندمافقدان البياناتالسلوك المتوقع
التحويللا يزال النظام الأساسي الحالي متاحًا، أو إذا كنت تقوم بصيانة مخططةRPO = 0ينتظر وصول البيانات المتبقية التي تمت نسخها قبل تغيير الأدوار
التحويل التلقائيالخادم الأساسي الحالي غير متاح ولا يمكن استعادته بسرعةممكنيرقي الخادم الاحتياطي على الفور حتى يمكن استئناف عمليات الكتابة

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

تأخر CDC وأهميته

تأخر CDC هو كمية البيانات التي تمت كتابتها إلى المجموعة الأساسية ولكن لم يتم تطبيقها بعد على المجموعة الاحتياطية.

يؤثر تأخر CDC على خياري الاستعادة:

  • أثناء عملية التبديل، عادةً ما يعني انخفاض تأخر CDC أن العملية تكتمل بشكل أسرع.
  • أثناء التحويل التلقائي، يمثل تأخر CDC نافذة البيانات التي قد تُفقد في حالة عدم توفر الخادم الأساسي الأصلي.

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

الاستيراد المجمع في تكرار CDC

في طوبولوجيا تكرار CDC، يجب أن يستخدم الاستيراد المجمّع وضع الالتزام ثنائي المراحل (2PC) مع " auto_commit=false". قم بتشغيل الاستيراد والالتزام على المجموعة الأساسية فقط، وتأكد من أن ملفات الاستيراد متاحة لكل من المجموعة الأساسية والمجموعة الاحتياطية. للحصول على التفاصيل، راجع " الاستيراد المجمّع في تكرار CDC".

القيود

يخضع Milvus CDC حاليًا للقيود التالية:

  • يدعم طوبولوجيات ذات رئيسي واحد فقط.
  • لا يدعم عمليات الكتابة النشطة-النشطة أو متعددة المجموعات الأساسية.
  • يمكن للمجموعات الاحتياطية خدمة حركة القراءة، لكنها ترفض عمليات الكتابة المباشرة طالما ظلت في وضع الاحتياطي.
  • قد يؤدي التحويل التلقائي إلى فقدان البيانات التي تمت كتابتها إلى المجموعة الرئيسية القديمة ولكن لم يتم نسخها بعد إلى المجموعة الاحتياطية.
  • يجب أن يتطابق تكوين « pchannels » مع التخطيط الفعلي للقنوات في كل مجموعة.

الأسئلة الشائعة

هل يمكن لمجموعة احتياطية تلبية الاستعلامات؟

نعم. يمكن للمجموعة الاحتياطية معالجة حركة القراءة. ولا يمكنها قبول عمليات الكتابة حتى تصبح المجموعة الأساسية.

هل يدعم Milvus CDC عمليات الكتابة النشطة-النشطة؟

لا. تم تصميم Milvus CDC لتوبولوجيا ذات مجموعة رئيسية واحدة. قد تؤدي الكتابة إلى مجموعات متعددة في نفس الوقت إلى حدوث انقسام في المعالجة وتباين في البيانات.

هل يؤدي التبديل إلى فقدان البيانات؟

لا. ينتظر التبديل حتى يتم نسخ البيانات المتبقية قبل أن تصبح المجموعة الاحتياطية هي المجموعة الأساسية.

هل يؤدي التحويل التلقائي إلى فقدان البيانات؟

نعم، قد يؤدي ذلك إلى فقدان البيانات. قد تُفقد أي بيانات تمت كتابتها إلى الخادم الأساسي القديم ولم يتم نسخها بعد إلى الخادم الاحتياطي.

ما مقدار البيانات التي يمكن أن تُفقد أثناء التحويل التلقائي؟

يقتصر الفقدان المحتمل للبيانات على تأخر CDC في الوقت الذي أصبح فيه الخادم الأساسي غير متاح.