المؤسسة العامة لاستصلاح الأراضي آمنة dataimport الأساسية مبادلة على المرور الموقع

StackOverflow https://stackoverflow.com/questions/9462017

سؤال

مرحبا زميل الفنيين ،

دعونا نفترض أن لدينا (PHP) موقع على شبكة الانترنت مع الملايين من الزوار شهريا و نحن إدارة المؤسسة العامة لاستصلاح الأراضي مؤشر على الموقع مع 4 ملايين الوثائق استضافتها.المؤسسة العامة لاستصلاح الأراضي يعمل على 4 خوادم منفصلة حيث server هو سيد وغيرها 3 خوادم يتم نسخها نسخا متماثلا.

هناك يمكن إدراج الآلاف من الوثائق في المؤسسة العامة لاستصلاح الأراضي كل 5 دقائق.وإلى جانب ذلك ، يمكن للمستخدم تحديث حساباتهم والتي أيضا يجب أن يؤدي إلى المؤسسة العامة لاستصلاح الأراضي التحديث.

أنا أبحث عن استراتيجية آمنة إلى إعادة إنشاء الفهرس سريع و آمنة دون فقدان أي وثيقة.وأن يكون آمنة دلتا/تحديث الاستراتيجية.لقد فكرت في استراتيجية وأريد أن أشارك مع الخبراء هنا لسماع رأيهم حول و إذا أنا يجب أن أذهب لهذا النهج أو إذا كانوا قد ينصح شيئا (تماما) مختلفة.

المؤسسة العامة لاستصلاح الأراضي DataImport

جميع عمليات أريد استخدام بيانات واحدة-استيراد معالج.أريد أن مزيج البيانات استيراد دلتا في واحدة config مثل DataImportHandlerDeltaQueryViaFullimport.نحن نستخدم قواعد البيانات MySQL كما datasource.

إعادة بناء الفهرس

من أجل إعادة بناء الفهرس لدي التالية في الاعتبار ؛ ونحن إنشاء أساسية جديدة تسمى 'reindex' بالقرب من 'يعيش' الأساسية.مع dataimporthandler نحن تماما إعادة بناء وثيقة كاملة-مجموعة (4 ملايين الوثائق) التي يستغرق حوالي 1-2 ساعة في المجموع.على العيش مؤشر لا تزال هناك كل دقيقة بعض التحديثات إدراج والحذف.

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

مشركا التحديثات العيش الأساسية

للحفاظ على حياتنا الأساسية في المسار نقوم بتشغيل الدلتا استيراد كل دقيقة.بسبب الأساسية مبادلة reindex الأساسية (والتي هي الآن تعيش الأساسية) سيتم تعقب ar تبقى ما يصل إلى التاريخ.أنا أعتقد أنه لا ينبغي أن يكون حقا مشكلة إذا كان هذا المؤشر هو تأخر لبضع دقائق لأن dataimport.خصائص سيتم تبديل ؟ دلتا-استيراد وقد تجاوز هذه دقيقة من التأخير ولكن ينبغي أن يكون ممكنا.

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

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

و هل هناك أي مخاطر مع فقدان الوثائق عند مبادلة ، وما إلى ذلك ؟

شكرا مقدما!

هل كانت مفيدة؟

المحلول

جيدة (الثابت) السؤال!

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

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

وعلاوة على ذلك, سوف تأكد من أن ليس هناك أي دلتا-استيراد تعمل على العيش الأساسية قبل مبادلة الأساسية الرئيسية.

نصائح أخرى

لدينا معدلة قليلا الوضع في النهاية.هناك نوعان من DataImportHandlers واحد كامل استيراد أخرى على استيراد دلتا.الدلتا للاستيراد يتم تشغيلها من قبل كرون كل 3 ساعات و يأخذ دقائق لإكمال.كامل استيراد حوالي 10m الوثائق تأخذ ~48hrs (مجنون!).جزء كبير من هذا ينطوي على استتار الشبكة ، حيث كمية ضخمة من البيانات المنال من الخلية الجدول لكل وثيقة.هذه اثنين من الجداول الموجودة على خوادم الخلية و لا يمكن انضم.

لدينا 'يعيش' الأساسية ، الذي هو أحد بعد استيراد دلتا.ونحن نقدم آخر 'بناء' الأساسية وأداء كامل المؤشر الذي يأخذ ~48hrs إلى النهاية.قبل هذا الوقت ، ونحن الحفاظ على المسار من كل الوثائق التي تم تحديث/حذف من 'يعيش' الأساسية ، ومن ثم القيام استيراد دلتا في 'بناء' الأساسية للحصول على كل منهم أن الدولة نفسها.في اليوم العادي مرة كل النوى في نفس الدولة ، فإننا مقايضتهم وتخدم من بناء النواة.(الذي سيرصد أن إعادة بناء النواة يتم الفهرسة الكاملة و طبقت دلتا بقع كذلك؟)

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

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

هناك عدد قليل من أكثر أجزاء متحركة في هذا التصميم و موثوقية من رصد عملية في غاية الأهمية العملية على نحو سلس.أي اقتراحات/ البدائل ؟

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top