تحجيم قاعدة البيانات. Microsoft AlwaysOn

مهلا. اسمي Tigran Petrosyan ، أنا مهندس رائد للدعم الفني في Docsvision ، واليوم سأخبرك عن تطبيق تقنية MS SQL AlwaysOn. هذه هي المقالة الثانية في السلسلة المصغرة لقابلية التوسع في Enterprise ECM ، والتي ركزت فيها المقالة الأولى لزميلي على تقنية توسيع نطاق البحث في Elasticsearch .



قد تكون كلتا المادتين موضع اهتمام ليس فقط لأولئك الذين يعملون مع Docsvision ، ولكن أيضًا لجميع المهتمين بتقنيات القياس.



بضع كلمات حول سبب حديثنا عنها



يختلف أحدث إصدار من Docsvision للنظام الأساسي EDMS / ECM ، الذي نقوم بتطويره ، اختلافًا جوهريًا عن الإصدارات السابقة في بنيته المعيارية. كان من المهم توفير القدرة على توسيع نطاق النظام (وبشكل غير محدود تقريبًا) مع الحفاظ على سرعة العمل. تعد MS SQL AlwaysOn إحدى التقنيات التي تقوم عليها القدرات الجديدة للمنصة.



لقد تحدث زملائي بالفعل عن تقنيات القياس التي تكمن وراء ميزات النظام الأساسي الجديد: هناك سلسلة من 4 ندوات مصغرة على الويب على YouTube ، وسلسلة من 3 مقالات عن المتوسط ( مقالة رقم 1 ، مقالة 2 ، مقالة رقم 3فقط مخصص لموضوع تحجيم قاعدة البيانات). تشير هذه المواد بشكل أوضح إلى المشكلات التي قمنا بحلها وما حققناه في حلها.

سأفكر في ميزة واحدة محددة لـ MS SQL AlwaysOn تزيد من موثوقية وأداء خادم قاعدة البيانات.



صورة

الشكل: 1. تبدو بنية النظام الأساسي Docsvision اليوم على هذا النحو.



توسيع نطاق خدمة قاعدة البيانات. MS SQL AlwaysOn



تتضمن أدوات تحسين الأداء وتوسيع نطاق خدمة قاعدة البيانات لمنصة Docsvision الخاصة بنا القدرة على إنشاء مجموعات من خوادم قواعد البيانات. يتم توفير هذه الميزة بواسطة تقنية MS SQL AlwaysOn.



يمكن لمجموعات التوفر AlwaysOn داخل قاعدة بيانات Docsvision تنفيذ مهمتين في وقت واحد:



  • يضمن التوافر العالي تشغيل النظام دون انقطاع ؛
  • يتم تنفيذ حمل القراءة من قاعدة البيانات جزئيًا على النسخ المتماثلة.


يتمثل مبدأ تشغيل وضع Always On في إنشاء مجموعة من الخوادم ، من بينها يمكنك الاختيار:

  • الخادم الرئيسي - الخادم الرئيسي الذي يسجل جميع التغييرات في النظام (قراءة ، كتابة) ؛
  • الخادم التابع هو خادم النسخ المتماثل الذي يكرر جميع التغييرات في النظام ، ولكنه للقراءة فقط. يخزن كل خادم نسخ قاعدة بيانات (البيانات الوصفية) لتخزين البيانات الوسيطة لتشغيل استعلامات البحث وطرق العرض.




الشكل: 2. موازنة الحمل بين الخوادم.



كما ترى في الرسم التخطيطي ، فإننا نوزع عبء القراءة ، نظرًا لأن الغالبية العظمى من عمليات المستخدم في النظام تتم قراءتها (البحث ، التقارير ، فتح المستندات).



أثناء الاختبار ، كان لدينا في البداية خادم رئيسي أقوى من الخادم التابع. ومع ذلك ، عند التغلب على رقم حوالي 40 ألف مستخدم ، رأينا أن خوادم العبيد لم تكن قادرة على التعامل ، وأن السيد ، على العكس من ذلك ، كان غير مستغل. كان هذا تأكيدًا عمليًا على وجود المزيد من طلبات القراءة ، وتولد المزيد من التحميل ، لذلك نقوم أولاً بتوزيعها بين العقد.



عندما يعمل وضع Always On ، هناك عدة أنواع من طلبات المستخدم:



  • . , , , «Read Only», , slave-, master- . «Read Only», master-, .. .
  • . «Timestamp», . «Timestamp» . , «Timestamp» : ( Timestamp), - ( Timestamp Timestamp – , ), – . , , «Timestamp» , slave- master- , «Timestamp» .
  • , . slave- «Metadata» ( ). slave- , , .


slave-:



  • slave-, . Round Robin, .. , , slave- .
  • , . Always On slave- . , slave- . , , slave- .
  • master- slave :



    • GetCardXmlData – , XML ;
    • SectionReadRowsData – , ;
    • SearchCreateProcessor – ;
    • ViewCreateProcessor – ;
    • CardGetState – ;
    • ReportGetData – ;
    • RowGetData – ;
    • RowGetHierarchy – ;
    • CardGetType – , ;
    • SessionGetIdList;
    • UserGetInfo.


يتيح لك استخدام تقنية MS SQL Always زيادة سعة الخادم وتوزيع الحمل الزائد بسلاسة. في الاختبارات ، حققنا حملًا يزيد عن 100000 مستخدم متزامن ، ويرجع ذلك إلى حد كبير إلى التوسع على مستوى قاعدة البيانات.



سأكون سعيدا للإجابة على أسئلتك.



All Articles