ميلفوس CDC
يقوم برنامج Milvus CDC (التقاط بيانات التغيير) بنسخ تغييرات البيانات من مجموعة Milvus إلى أخرى. يمكنك استخدام CDC لإنشاء طوبولوجيا التعافي من الكوارث الأساسية - الاحتياطية ل Milvus.
في طوبولوجيا أساسية-احتياطية، تعمل مجموعة واحدة كمجموعة أساسية وتقبل عمليات الكتابة. تتلقى مجموعة أو أكثر من المجموعات الاحتياطية التغييرات باستمرار من المجموعة الأساسية ويمكنها خدمة حركة مرور القراءة. عندما تصبح المجموعة الأساسية غير متوفرة أو تحتاج إلى صيانة، يمكنك تحويل حركة مرور الخدمة إلى مجموعة احتياطية.
البنية
تحتوي الطوبولوجيا النموذجية على:
- مجموعة أساسية: المجموعة المصدر للنسخ المتماثل. يقبل عمليات القراءة والكتابة.
- المجموعة الاحتياطية: مجموعة مستهدفة للنسخ المتماثل. تستقبل التغييرات من المجموعة الأساسية وتكون للقراءة فقط بينما تظل مجموعة احتياطية.
- عقدة CDC: مكون Milvus الذي يقوم بإعادة توجيه تغييرات WAL من المجموعة الأساسية الحالية إلى المجموعات الاحتياطية. نشر 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 لتقدير التأخر في القرص المضغوط.
القيود
يوجد لـ Milvus CDC حالياً الحدود التالية:
- يدعم طوبولوجيات أحادية المبدأ فقط.
- وهو لا يدعم الكتابة النشطة-النشطة أو الكتابة متعددة الأولويات.
- يمكن للمجموعات الاحتياطية أن تخدم حركة مرور القراءة، لكنها ترفض الكتابات المباشرة أثناء بقائها في وضع الاستعداد.
- قد يؤدي تجاوز الفشل إلى فقدان البيانات التي تمت كتابتها إلى الأساسي القديم ولكن لم يتم نسخها بعد إلى الاحتياطي.
- يجب أن يتطابق
pchannelsالذي تم تكوينه مع تخطيط القناة الفعلي لكل مجموعة.
الأسئلة الشائعة
هل يمكن للمجموعة الاحتياطية خدمة الاستعلامات؟
نعم. يمكن للمجموعة الاحتياطية أن تخدم حركة مرور القراءة. ولا يمكنها قبول الكتابات حتى تصبح المجموعة الاحتياطية هي الأساسية.
هل يدعم نظام Milvus CDC الكتابة النشطة-النشطة؟
لا. تم تصميم Milvus CDC لطوبولوجيا أساسية واحدة. يمكن أن تتسبب الكتابة إلى مجموعات متعددة في نفس الوقت في انقسام الدماغ وتباعد البيانات.
هل يؤدي التبديل إلى فقدان البيانات؟
لا. ينتظر التحويل حتى يتم نسخ البيانات المتبقية قبل أن يصبح الاحتياطي أساسيًا.
هل يؤدي تجاوز الفشل إلى فقدان البيانات؟
يمكن ذلك. قد تُفقد أي بيانات مكتوبة على النظام الأساسي القديم ولكن لم يتم نسخها بعد إلى النظام الاحتياطي.
ما مقدار البيانات التي يمكن فقدانها أثناء تجاوز الفشل؟
يتم تحديد فقدان البيانات المحتمل من خلال تأخر CDC في الوقت الذي أصبح فيه الأساسي غير متوفر.