نقل 17 مليون صف من SAS4
نسخة احتياطية حقيقية من SAS4 بحجم 326 ميجابايت، استُوردت إلى مستأجر تجريبي وطوبقت صفًا صفًا، ثم صادق المشتركون المنقولون من جديد عبر CHAP.
المستورِد الذي ينجح على قاعدة بيانات عرض توضيحي لا يثبت شيئًا. الذي يهم هو النسخة الاحتياطية الحقيقية للمشغّل، بما فيها خمسة عشر عامًا من الصفوف المحذوفة منطقيًا، وبايتات غير صالحة في أعمدة نصية، وقيم تعداد لم يوثّقها أحد. لذلك كان الاختبار حقيقيًا.
المُدخَل
نسخة احتياطية إنتاجية من SAS4 إصدار 4.56: 326 ميجابايت مضغوطة، نحو 17.0 مليون صف موزّعة على 89 جدولًا. والأعداد الخام في النسخة كانت 1,131,110 صف مشترك، و1,658,908 كرت، و3,072,858 صف بيانات اعتماد، و292 جهاز شبكة، و198 باقة، و103 مديرين.
وقبل استيراد أي شيء، استُعيد الملف نفسه إلى MySQL كما هو، حتى يمكن التحقق من كل رقم ينتجه المستورِد بمقارنته بالمصدر لا بنفسه.
التطابق
جدول users في SAS4 يحوي المشتركين، وجدول الموظفين لديه شيء آخر تمامًا؛ ويسمّي
X-Radius الاثنين بالعكس، فالنصف الأول من التطابق مسألة مصطلحات. والباقي عادي:
الباقات، والكروت وسلاسلها، وشجرة المديرين بأرصدتها، ودفتر الأموال، وأجهزة
الشبكة بأسرارها المشتركة، وسجل التفعيلات.
وبعض الأشياء لا مقابل لها ولا تُختلَق. تفضيلات اللوحة لا تنتقل. وبضعة رموز تحكّم في الوصول لم يكن لها تطابق فعُدّت بدل أن تُخمَّن — تسعة وعشرون منها في هذه النسخة.
التنفيذ
الاستيراد مهمة خلفية قابلة للاستئناف، لا طلب. فقد دفق النسخة كاملة في 83 دقيقة على منصة تطوير، وبقيت ذاكرة العامل بين 19 و40 ميبي بايت طوال الوقت مقابل حد قدره 640 ميبي بايت، لأن المحلّل لا يحتفظ بأكثر من دفعة واحدة.
وكل مرحلة تكتب عدّادات، والعدّادات هي المقصد. فقد خرج المشتركون الأحياء 23,621 — أي 1,131,110 صفًا في النسخة ناقص 1,107,489 محذوفة منطقيًا، أُعيد عدّها بشكل مستقل من ملف المصدر. وخرجت الكروت 1,658,908، وهو العدد الخام بالضبط. وأجهزة الشبكة: 292، بلا أي تعارض عابر للمستأجرين. والتفعيلات طابقت حتى الصف الأخير، مع هبوط المستبعَد منها في عدّادات مسمّاة بدل أن يختفي: 1,107,017 تخصّ مشتركين محذوفين، و1,202,827 بلا مفتاح مشترك أصلًا.
الترحيل الذي لا يمكنك تدقيقه ترحيل عليك أن تثق به. وهذا الترحيل يوازن.
الدليل الذي يهمّ
الأعداد ضرورية وغير كافية. والفحص الذي يهم المشغّل فعلًا هو ما إذا كان مشتركوه ما زالوا يستطيعون الدخول.
قُورنت عيّنة من خمسمئة مشترك منقول بيانات اعتماد ببيانات اعتماد مع المصدر: طابق 484 من 484 ممن لديهم بيانات اعتماد مطابقة تامة، وتم الفحص داخل قاعدة البيانات حتى لا تخرج أي بيانات اعتماد منها. ثم صودق على عشرين مشتركًا مستورَدًا بطلبات CHAP حقيقية تجاه FreeRADIUS، والمستأجر مستنتَج من عنوان جهاز مستورَد. وقُبلوا، مع بقاء خصائص الرد وربط الجلسة سليمة.
الطريق إلى الخلف
المصدِّر يكتب الشكل نفسه من جديد. وإعادة تصدير المستأجر المستورَد أعادت 23,621 مشتركًا، و1,658,908 كرت، و75 مديرًا، و106 باقات، و292 جهازًا — كلها مطابقة.
وذلك التصدير هو أيضًا الموضع الذي تثبت فيه قاعدة العزل جدواها. فحين يُصدَّر عبر دور قاعدة البيانات الخاص بالتطبيق تتطابق الأعداد. وحين يُصدَّر عبر اتصال مستخدم خارق تكون الأعداد أعلى، لأن المستخدم الخارق غير خاضع لسياسات مستوى الصفوف ويجمع بهدوء صفوف مستأجرين آخرين. وهو تذكير جيد بأن "أعاد بيانات" و"أعاد البيانات الصحيحة" اختباران مختلفان.