محتويات الدورة

MongoDB / المتقدم: التشغيل الموزع والقابل للتعافي / الدرس 14

مجموعات النسخ واتساق القراءة والكتابة

افصل تفضيل التوجيه وإقرار المتانة ورؤية القراءة، واستدل على الانتخاب والتأخر والجلسة السببية دون ضمان فقد صفري عام.

وقت القراءة التقريبي: 3 دقيقةتاريخ مراجعة المحتوى
في هذه الصفحة

أهداف الدرس

  • شرح الأصل والنسخ وآثار الانتخاب.
  • اختيار التفضيل والاتساق وفق المتطلبات.

تنسخ المزامنة التاريخ ولا تعوض النسخة الاحتياطية

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

التوجيه والرؤية إعدادان مختلفان

يختار التفضيل العقد ويضبط read concern الرؤية. لا يطلب اختيار النسخة majority تلقائياً ولا تعني majority أحدث قيمة مطلقة أو القراءة من الجميع. يختار المثال الأصل وmajority. قد تضبط الافتراضات حسب السياق؛ افحص التطبيق والنشر لا إعداداً عاماً مفترضاً.

javascript mongosh توضيحية؛ النتائج المتوقعة مستنتجة وليست قياسات.
db.getSiblingDB('quay_lab').shipments.find(
  { _id: 101 }, { _id: 1, state: 1 }
).readPref('primary').readConcern('majority');

تعتمد الحالة على العينة والوقت؛ تصف الخيارات العقد لا نتيجة سليمة مختلقة.

يحدد الإقرار معنى النجاح

قد يتطلب الإقرار عدداً أو أغلبية وسلوك يومية مدعوماً. ليس w:1 متانة الأغلبية عند الفشل. قد تطبق كتابة انتهت مهلة إقرارها فلا تثبت المهلة الفشل أو تبرر تكرار المال. للافتراضات فروق بنية، وحدد الضمان واختبره. يضبط اتساق المعاملة عندها لا كل عملية داخلها.

استخدم سياسة إقرار مسماة

يطلب التغيير إقرار أغلبية بمهلة تعليمية لا توصية عامة. عند خطأ الإقرار احفظ الهوية وصالح النتيجة؛ قد تغيرت الوثيقة. لا تدخل رسالة مستقلة في الكتابة ولا تعوض الهوية عند الرد الضائع. لم تنفذ الكتابة.

javascript mongosh توضيحية؛ النتائج المتوقعة مستنتجة وليست قياسات.
db.getSiblingDB('quay_lab').shipments.updateOne(
  { _id: 101, state: 'pending' },
  { $set: { state: 'ready' } },
  { writeConcern: { w: 'majority', wtimeout: 5000 } }
);

مع مطابقة وإقرار ناجحين تصبح ready، وتحتاج نتيجة المهلة مصالحة.

تحتاج الجلسات والبنية سياسة كاملة

توفر الجلسة السببية ترتيباً بشروط اتساقها، وليست معاملة أو خطية عامة. قد تعود secondaryPreferred للأصل عند غياب نسخ مناسبة فلا تعني عدم قراءته. احفظ العلامات وحد الإعادة أثناء الانتخاب، وراقب التاريخ والتخزين والنسخ دون اعتبار العملية الخضراء إثبات تعافي حدث معين.

الأخطاء الشائعة وإصلاحها

تفقد قراءة النسخة كتابة حديثة

لماذا يحدث؟
سمح التوجيه بتاريخ مطبق أقدم.
كيف تصلحه؟
استخدم سياسة الحداثة أو السببية وافحص السياق.
كيف تتجنب تكراره؟
وثق قبول التأخر وقراءة آخر كتابة.

تُعامل مهلة الإقرار كعدم كتابة

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

تفترض majority أحدث قيمة في كل مكان

لماذا يحدث؟
اختلطت الرؤية والتوجيه والحداثة الآنية.
كيف تصلحه؟
اختر العقد الموثق للطلب.
كيف تتجنب تكراره؟
اختبر الانتخاب والتأخر بالخيارات الفعلية.

اختبر فهمك

1. تنتهي مهلة تحديث ينتظر الأغلبية. هل يعيد العميل الزيادة بأمان بلا فحص؟

اعرض الحل المشروح

لا؛ قد طبقت الزيادة فتتكرر. احفظ الهوية وصالح نتيجتها بالبروتوكول. لإعادة المشغل شروط ولا تجعل حدث API معاداً يدوياً آمناً تلقائياً. ميز هوية العملية والحدث.

2. لماذا لا تكفي ثلاث عقد نسخ ضد حذف عرضي؟

اعرض الحل المشروح

قد تنقل الحذف للجميع فتغيب البيانات عن كل نسخة حية. احفظ تاريخاً محمياً وحد استعادة مستقلين. توافر العقد والتعافي من الخطأ متطلبان مختلفان يحتاجان تصميماً وتدريباً.

أهم ما تعلمته

  • يجيب التفضيل واتساق القراءة والكتابة عن أسئلة مختلفة.
  • تحتاج المهلة والفشل مصالحة ونسخة مستقلة.

المراجع الرسمية