أنواع التعارض ونُهُج الحل عند استخدام مناطق كتابة متعددة

ينطبق على: NoSQL MongoDB كاساندرا العفريت الجدول

يمكن تطبيق نهج حل التعارض والتعارضات إذا تم تكوين حساب Azure Cosmos DB الخاص بك مع مناطق كتابة متعددة.

بالنسبة لحسابات Azure Cosmos DB التي تم تكوينها مع مناطق كتابة متعددة، يمكن أن تحدث تعارضات التحديث عندما يقوم الكتاب بتحديث نفس العنصر في مناطق متعددة بشكل متزامن. يمكن أن يكون تحديث التعارضات من الأنواع الثلاثة التالية:

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

  • استبدال التعارضات: يمكن أن تحدث هذه التعارضات عند تحديث أحد التطبيقات لنفس العنصر في نفس الوقت في منطقتين أو أكثر.

  • حذف التعارضات: يمكن أن تحدث هذه التعارضات عند حذف تطبيق لعنصر في نفس الوقت في منطقة واحدة وتحديثه في منطقة أخرى.

تكوين نُهج حل التعارض

يقدم Azure Cosmos DB آلية مرنة تعتمد على النُهج لحل تعارضات الكتابة. يمكنك التحديد من نهجي حل التعارض على حاوية Azure Cosmos DB:

  • Last Write Wins (LWW) : يستخدم نهج الدقة هذا، افتراضيا، خاصية الطابع الزمني المعرّفة من قبل النظام. وهو مبني على بروتوكول ساعة مزامنة الوقت. إذا كنت تستخدم واجهة برمجة التطبيقات ل NoSQL، يمكنك تحديد أي خاصية رقمية مخصصة أخرى (على سبيل المثال، مفهوم الطابع الزمني الخاص بك) لاستخدامها لحل التعارض. ويشار أيضا إلى خاصية رقمية مخصصة باسم مسار حل التعارض.

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

    ملاحظة

    Last Write Wins هو نهج حل التعارض الافتراضي ويستخدم الطابع الزمني _tsلواجهات برمجة التطبيقات التالية: SQL، MongoDB، Cassandra، Gremlin و Table. تتوفر الخاصية الرقمية المخصصة فقط لواجهة برمجة التطبيقات ل NoSQL.

    لمعرفة المزيد، راجع الأمثلة التي تستخدم نُهج حل التعارض في LWW.

  • مخصص: تم تصميم نهج الحل هذا للدلالات المعرفة من قبل التطبيق لتسوية التعارضات. عند تعيين هذا النهج على حاوية Azure Cosmos DB، تحتاج أيضا إلى تسجيل إجراء دمج مخزن. يتم استدعاء هذا الإجراء تلقائيا عند الكشف عن تعارضات ضمن عملية قاعدة بيانات على الخادم. يوفر النظام ضمانة لمرة واحدة لتنفيذ إجراء الدمج كجزء من بروتوكول الالتزام.

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

    ملاحظة

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

الخطوات التالية

تعرف على كيفية تكوين نهج حل التعارض: