اتساق قوي: عند الحاجة
الاتساق القوي هو نموذج تبدو فيه جميع العمليات وكأنها تُنفذ على الفور وباستمرار في نظام عالمي واحد يتوافق مع الوقت الفعلي. سيقرأ المستخدم آخر قيمة مؤكدة، ولن يتفوق عميلان متوازيان على بعضهما البعض بشكل منطقي.
يعطي الاتساق الصارم نموذجًا عقليًا بسيطًا ويحمي الثوابت الصلبة، ولكنه يتطلب التنسيق (النصاب/القائد)، مما يزيد من زمن الوصول والحساسية لتقسيم الشبكة.
1) عندما يكون القوي إلزاميًا
المالية والتسويات
الأرصدة والمبالغ المشطوبة: «الإنفاق المزدوج» غير مقبول.
التحويلات والتسويات: لا يمكن تسجيل نفس المبلغ مرتين.
المخزون والحدود
البضائع/المساحة/التذاكر المتبقية: لا يمكنك الخوض في القيم السلبية.
حدود المعاملات لكل وحدة زمنية (حدود الائتمان، أرصدة واجهة برمجة التطبيقات).
التفرد والنزاهة
مسجلات تفريغ فريدة/معرفات/قواعد.
الثوابت على مستوى المجال: «يجب أن يكون الطبيب ≥1 في الخدمة في القسم»، «لا يمكن أن تكون هناك مهام نشطة> N في قائمة الانتظار».
مراجعة الحسابات وعدم تغيير السجلات
الأحداث التي تعمل كمصدر قانوني للحقيقة: النظام والاكتمال أمران حاسمان.
إذا كان انتهاك الثابت ينطوي على مخاطر تجارية غير مقبولة (خسارة المال، والعقوبات، وفقدان الثقة) - اختر الاتساق القوي.
2) ما هو بالضبط «صارم»
قابلية الخطوط (المستوى التشغيلي): ترى القراءة أحدث الكتابات الناجحة ؛ يتم احترام الأوقات.
التسلسل (مستوى المعاملات): تكون النتيجة مكافئة لتنفيذ المعاملات بالتتابع (يمكن أن تكون قوية، ولكنها تنفذ أحيانا بدون أمر صعب في الوقت الحقيقي).
فرق مهم: يحمي Serializable من شذوذ مستوى المعاملات (الشبح/الكتابة-الانحراف)، ويحمي Linearizable من اللحظة الواحدة وترتيب العمليات الفردية. غالبًا ما تحتاج إلى كلا الخصائص (على سبيل المثال، المال في قاعدة البيانات + سجل الأحداث).
3) صرامة الأسعار: PACELC و CAP
PACELC: عند تقسيم شبكة (P)، عليك اختيار C (صرامة) أو A (توفر). قوة → CP: من الأفضل الرفض أو الحجب بدلاً من انتهاك الثابت. عندما لا يكون هناك فصل (EL)، ندفع مع L - p95/p99 ينمو بالتنسيق/النصاب القانوني.
الممارسة: قوية لـ «نواة الثوابت»، حولها - إسقاطات/مخابئ سريعة مع نهاية المطاف حتى لا تعاني UX.
4) كيف يتحقق الاتساق القوي
القيادة والنصاب القانوني
والقائد الوحيد يقبل التسجيلات ؛ القراءة - في القائد أو بنصاب النسخ المتماثلة.
النصاب «W» للكتابة و «R» للقراءة مع «R + W> N» يحسن فرص القراءة «الأخيرة».
مطابقة الخوارزميات
الطوافة/باكسوس: سجل النسخ المتماثل، تأكيدات الأغلبية، المصطلح/الفهارس.
النسخ المتزامن - يتم التحقق من صحة السجل فقط بعد المثابرة على النصاب القانوني.
ساعات العمل والطلب
TrueTime/Hybrid Logical Clocks (HLC): حد من اختلال محاذاة الساعة من أجل التسلسل العالمي الآمن.
رموز/إصدار السياج: الحماية من قادة «الصباح» وانقسام الدماغ.
عزل المعاملات
Serializable (SI + predicate conflict checking/lock): protection against phantom/write-skew.
التسلسل الصارم: قابلية التسلسل + قابلية الخطية بالنسبة إلى الوقت الفعلي.
5) المناطق المتعددة: الخيارات والمقايضات
الرائد العالمي (CP)
تمر السجلات عبر منطقة رائدة واحدة ؛ - المخابئ/الإسقاطات المحلية أو من خلال قائد.
الإيجابيات: نموذج بسيط. السلبيات: p95/RTT إلى القائد، مع أقفال تسجيل P.
القادة الإقليميون + النصاب المتزامن
توسيع النصاب الجغرافي من عدة مناطق ؛ كل سجل ينتظر التأكيدات> 50٪.
الإيجابيات: بدون «رقبة ضيقة» واحدة، ثبات عالي. السلبيات: زمن انتقال القارات.
التقسيم الجغرافي
البيانات المنزلية للمنطقة (المستأجر/الولاية القضائية) ؛ العمليات العالمية - من خلال الملحمات/المجاميع.
الإيجابيات: زمن انتقال منخفض للتسجيلات المحلية. السلبيات: تخطيط حدود البيانات.
6) قم بإعداد R/W وتقرأ
الإدخالات: «W = الأغلبية» هي معيار القوة.
القراءات:- «طازج» - «R = الأغلبية» أو القراءة عند الزعيم.
- لتقليل L - يقرأ «stale-ok» من النسخ المتماثلة للشاشات الثانوية (مميز صراحة في UX).
- قراءة إصلاح القراءة/عقد الإيجار: التحسين دون فقدان الشدة لعقود الإيجار القصيرة للقائد.
7) الأداء و UX
زمن الوصول: ركز على RTT بين العميل والقائد/النصاب القانوني (مئات الآنسة بين المناطق).
نمط «كتابة قوية، سريعة القراءة»: قوي في الكتابة + ذاكرة التخزين المؤقت/الإسقاط على القراءات، مع RYW للمؤلف.
الدفعة/الحزم: سجلات المجموعة، لكن راقب زمن انتقال الذيل.
ملامح التدهور: في حادثة - حالات القراءة فقط، والنزاهة، وحظر الطفرات الخطيرة.
8) إمكانية ملاحظة المسار الصارم
المقاييس
p50/p95/p99: اكتب النصاب، اقرأ النصاب، قراءات القيادة.
نجاح النصاب القانوني، الإعادة/التراجع، تغييرات القائد.
تأخر النسخ (متوقع صغير، لكن الرصد إلزامي).
نصيب «ستيل» يقرأ (إذا تم تضمينه).
التعقب
الامتدادات: «قبول القائد»، «التكرار»، «النصاب القانوني».
Теги: «مصطلح»، «قائد _ معرف»، «نصاب _ حجم»، «منطقة».
تنبيهات
النمو p95/p99، زعيم إعادة الانتخاب المتكرر، النصاب القانوني، مؤشرات انقسام الدماغ.
9) الاختبارات والفوضى
مثل Jepsen: فواصل الشبكة، التأخير، القطرات، انحراف الساعة.
ثوابت السلامة: استحالة الإنفاق المزدوج/الأرصدة السلبية/الحجز المزدوج.
القيادة: رفض الزعيم، إعادة انتخابه تحت الحمل، رموز السياج.
اقرأ الاتساق: القراءة مباشرة بعد الكتابة يجب أن ترى «جديدة» (قراءة RYW/linearizable).
10) كتب لعب الحوادث
فقدان النصاب: التبديل إلى القراءة فقط، وإخطار العملاء، وإرسال مدخل إلى منطقة «المنزل» إذا كان التقسيم الجغرافي موجودًا.
إن نمو زمن الانتقال هو أمر أقاليمي: تقليل مؤقت لحجم السجلات الصارمة (ترحيل بعض التدفقات في قائمة الانتظار/الإسقاطات)، وتوطين حركة المرور.
رفرفة القائد: زيادة مهلة الانتخابات، والتحقق من الشبكات/الانجرافات التي تستغرق ساعة/توقف GC مؤقتًا.
تقسيم الدماغ: تمكين رموز السياج/فحوصات الإيجار، وإيقاف القادة القدامى على مستوى المشغل.
11) أخطاء نموذجية
الطلب القوي «في كل مكان»: انفجار زمن الوصول والتكلفة بدلاً من التركيز على الثوابت.
محاولة أن تكون CA تحت الانقسامات الحقيقية: عند النقطة P، لا يزال النظام يختار، غالبًا ضمنيًا.
الكتابة المزدوجة إلى مناطق مختلفة بدون قصص/منسق: الأشباح وفقدان الثوابت.
غياب RYW: لا يرى المستخدم كيانه المسجل حديثًا - انخفاض في الثقة.
تجاهل الساعة: بدون حدود HLC/TrueTime، من السهل الحصول على وقت «القفز» والسباق.
لا توجد خطة تدهور: في P، تبدأ الإخفاقات الجزئية الفوضوية.
12) إصلاحات سريعة (وصفات)
المدفوعات/الأرصدة: القائد + النصاب القانوني للأغلبية ؛ المعاملات الصارمة القابلة للتسلسل في فترات زمنية قصيرة، والفشل الصعب في P.
الحجز (المقاعد/الفتحات): الكتابة القوية من خلال القائد، والقراءات - التخزين المؤقت مع RYW ؛ TTL-reserves + TCC.
SaaS العالمية: التقسيم الجغرافي حسب «المستأجر/المنطقة» ؛ عمليات صارمة في المنطقة الأصلية، تقارير/بحث - من خلال الإسقاطات.
المراجعة/السجل: سجل CP مذيّل فقط ؛ ، ولكن يمكن التحقق منها بنقاط التفتيش.
13) قائمة مرجعية قبل البيع
- تمت كتابة الثوابت التي تتطلب قوة ؛ الباقي في AP/الإسقاط.
- قائد واحد/النصاب الأقاليمي/التقسيم الجغرافي المختار.
- تم تكوين «W = الأغلبية»، «R = أغلبية الزعيم» للمسارات الحرجة.
- RYW/monotonic المقدمة للنفثالينات ؛ يقرأ بشكل صريح «قديم موافق».
- تشمل مقاييس النصاب القانوني، والتأخر، والوقت ؛ تنبيهات بشأن الفقرة 95/ص 99 وإعادة انتخابها.
- هناك خطة متدهورة: القراءة فقط، وتعطيل الطفرات الخطرة، وقوائم الانتظار لـ «بعد العاصفة».
- اختبارات الفوضى: الانقسامات، انحراف الساعة، فشل القائد ؛ تم فحص ثوابت السلامة.
- وثائق العقد: ما هو صارم، وما هو «قد يكون وراء» الاتصال للمنتج/الدعم.
استنتاج
الاتساق القوي هو أداة لحماية الحقيقة حيث يكون الخطأ غير مقبول. طبقه حول الثوابت الصلبة، ودفع بوعي مقابل التنسيق مع زمن الوصول والتوافر في العواصف. اجمع: نواة CP للنقد وقراءة AP والإسقاط للسرعة. مع القياس عن بعد والتدهور والاختبارات الصحيحة، ستحتفظ بكل من الصواب وتجربة المستخدم.