فهم نماذج التناسق

مكتمل

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

يقدم Azure Cosmos DB مقياسا متدرجا من الاتساق مع العديد من الخيارات بين الخيارات التقليدية القوية والضعيفة التي توفرها حلول تخزين البيانات الأخرى.

Sliding scale of consistency with five options

كل مستوى من مستويات الاتساق الخمسة محدد جيدا مع مقايضات واضحة بالمقارنة مع بعضها البعض:

مستوى الأتساق الوصف
قويه الاتساق الخطي. يتم نسخ البيانات نسخًا متماثلاً والالتزام بها في جميع المناطق التي تم تكوينها قبل الاعتراف بها على أنها مُلزمة ومرئية لجميع العملاء.
Bounded Staleness القراءات أبطأ من الكتابة حسب عتبة مكونة في الوقت أو العناصر.
الدوره ضمن جلسة عمل معينة (مثيل SDK)، يمكن للمستخدمين قراءة الكتابات الخاصة بهم.
بادئة متسقة قد تتأخر القراءات عن الكتابة، ولكن القراءات لن تظهر أبدا خارج الترتيب.
Eventual القراءات ستكون في نهاية المطاف متسقة مع الكتابات.

تناسق قوي

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

هذه الخاصية تسبب الاتساق القوي أن يكون أعلى الكمون كما يجب أن تنتظر تلتزم لتكرار عبر مسافات جغرافية كبيرة.

تناسق غير محدد Bounded staleness

تشبه فترة الثبات المقيدة الاتساق القوي باستثناء أنه يسمح للقراءات بالتخلف عن الكتابة حتى عتبة محددة. ويمكن تعريف هذه العتبة على النحو الوارد في الفقرة 10 من هذا القبيل:

  • إصدارات K من عنصر متخلف عن الكتابات
  • T الفاصل الزمني المتخلف عن الكتابات

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

تلميح

هذه الصبغة القديمة المقيدة توفر ضمانات تناسق قوية داخل المنطقة التي تتم فيها كتابة البيانات.

تناسق "Session"

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

تناسق الجلسة هو خيار رائع للتطبيقات حيث يمكن الخلط بين المستخدمين النهائيين إذا لم يتمكنوا من رؤية أي معاملة قاموا بها للتو.

اتساق ثابت للبادئة

يسمح تناسق البادئة المتسقة بتناسق أكثر مرونة وأداء أعلى مع ضمان ظهور القراءات المتخلفة عن عمليات الكتابة بالترتيب الذي تمت كتابتها به.

الاتساق الثابت للبادئة مثالي للتطبيقات حيث يكون ترتيب عمليات القراءة أكثر أهمية من زمن الوصول.

الاتساق النهائي "Eventual"

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

الاتساق النهائي هو خيار جيد للتطبيقات التي لا تتطلب أي ضمانات خطية أو الاتساق.