تحدي قفل الجداول في بيئات الإنتاج الحية
تشغيل أمر مباشر مثل ALTER TABLE على جدول نشط يضم ملايين السجلات قد يؤدي إلى قفل الجدول بالكامل لدقائق أو ساعات، مما يتسبب في توقف فوري للواجهات واختناق مجمع الاتصالات (Connection Pool).
مراحل نمط التوسع والانكماش (Expand and Contract Pattern)
لضمان استمرارية الخدمة بنسبة 100%، نقسم كل تغيير هيكلي جذري إلى أربع خطوات مستقلة متتابعة:
- التوسع (Expand): إضافة العمود الجديد كحقل يقبل القيم الفارغة (Nullable) دون المساس بالعمود القديم، وتطبيق التعديل في ثوانٍ معدودة.
- الكتابة المزدوجة (Dual-Writing): تحديث شيفرة التطبيق لتكتب البيانات في العمودين القديم والجديد في آنٍ واحد.
- الترحيل التدريجي بالخلفية (Backfill): تشغيل مهمة خلفية مجدولة تنقل البيانات التاريخية في دفعات صغيرة (Batches) لا تثقل خادم قاعدة البيانات.
- الانكماش (Contract): تحويل القراءة بالكامل إلى الحقل الجديد، ثم إزالة العمود القديم بأمان بعد التأكد التام من استقرار الخدمة.
"في الأنظمة عالية الكثافة، المعمارية الموثوقة تعامل ترحيل البيانات كعملية هندسية تدريجية وليست كحدث لحظي مفاجئ."