Site icon مدونة منذر اسامة

قصة قواعد البيانات خلف موقع MySpace.Com

سبق وتحدثنا الاستخدام الأمثل للتقنية و عن الدور الذي لعبته في الرابطة الوطنية لكرة السلة الأمريكية NBA و شركة التوصيل UPS  واليوم أتابع مسيرتي في الكتاب الممتع إدارة نظم المعلومات (إدارة الشركات الرقمية ) لمؤلفيه Kenneth & Jane Laudon حيث أسلط الضوء على موقع www.MySpace.com ومعاناته المستمرة مع قواعد البيانات

يُعد موقع ماي سبيس (MySpace.com)  أحد أكبر المواقع الاجتماعية نمواً وانتشاراً في تاريخ شبكة الإنترنت, إذ بدأ الموقع أعماله في شهر 11\2003 وبحلول شهر 5 \ 2007 كان يملك 175000000 عضواً مسجلاً (لا تعد الأصفار مجددا , إنها فعلاً 175 مليون) عضو في فترة ثلاثة سنوات وأربع أشهر فقط أي بحدود 145,833 مستخدم جديد يومياً !

كان هنالك تحدي الكبير يواجه موقع MySpace و هو تجنب تدني أداء الموقع واستجابته لهذه الضغوط الهائلة .

المتطلبات التقنية لهذا الموقع مختلفة تماماً عن أي موقع آخر مهما كبر عدد زواره, فزيارتك للمواقع العادية تكون عبارة عن طلب محتويات الموقع من قاعدة البيانات دون التعديل عليها (Read Only) ,أما هنا فالوضع مختلف تماماً , هنالك عشرات الملايين من طلبات القراءة و التعديل (Read, Update) وهذا ما يضاعف العمليات على قواعد البيانات بشكل كبير. فكل عملية قراءة لسطر داخل هذا الموقع أو الكتابة , فإن هنالك عمليات تُقرأ من عدة جداول مُخزنة بأكثر من قاعدة بيانات وتلك قواعد البيانات موجودة على أكثر من سيرفر Server !

بدأ موقع MySpace  بالعمل على خادمين ويب (Two Web Servers) متصلين مع خادم لقواعد البيانات (Database Server) وقاعدة بيانات من نوع SQL, يعتبر هذا التشكيل مثالي للمواقع الصغيرة والمتوسطة, لكن سرعان ما تضخم عدد زوار ومشتركي الموقع, فقامت الإدارة بزيادة خوادم الويب لتلبي طلبات الزوار, وعندما وصل عدد المشتركين الى نصف مليون مشترك عام 2004 تم تركيب خوادم اضافية لقواعد البيانات, مما جعل الأمر أكثر تعقيداً ,حيث لا بد للبيانات أن تُقسم الى أكثر من قاعدة دون اي انقطاع أو ضعفٌ في الأداء .

أضافت الشركة ثلاثة خوادم لقواعد البيانات بحيث يكون خادم عليه قاعدة البيانات الرئيسية (Master) ومهمتها أن تتلقى جميع البيانات وبدورها تنسخهم الى القاعدتين الأخرتين, مهمة قاعدتي البيانات كانت الاستجابة الى طلبات الزوار وعرض المحتوى!

كان هذا الحل مفيداً نسبيا إلى أن وصل العدد الى 2 مليون مشترك… حيث زيادة عمليات الإدخال والإخراج
( Database transaction Input / Output) و عاد مسلسل البطئ من جديد !

انتقلت MySpace الى تطبيق نظام تجزئة للبيانات بشكل عمودي (Vertical Partitioning Model) على أكثر من قاعدة بيانات حيث تقسم وظائف الموقع الرئيسية على أكثر من قاعدة بيانات مثل شاشة الدخول, بروفايل المستخدمين (Users Profile) والمدونات.

حُللت المشكلة, لكن عادت للظهور عندما وصل العدد الى 3 مليون مشترك!
علاوة على ذلك أصبح حجم قاعدة البيانات الواحدة كبيرة جداً لأن تُشغل على خادم واحد!

باءت محاولات إضافة خوادم جديدة لتحمل حِمل قواعد البيانات بالفشل, فعمدت الشركة الى تصميم أسلوب جديد بحيث تجمع عدة خوادم ليعملا وكأنهما خادم واحد, كان هذا الحل مرضياً لفترة وجيزة واضطرت الشركة الى تقسيم المستخدمين الى مجموعات, وجعلت كل مليون مستخدم موجود على Instance of SQL Server  مختلفة.

على الرغم من الفوائد التي جنوها من هذا التقسيم إلا أن الحِمل لم يكن ليوَزع بشكل متساوي بين
الخوادم (Servers ) , كانت الشركة تحاول حل هذه المشكلة بتدخل يدوي لكن …. عبثاً!

 

قررت MySpace الانتقال الى آلية التخزين الافتراضي (Virtualized Storage architecture)

 

بهذا الترتيب أصبحت قواعد البيانات تكتب على أي هارد ديسك متاح , وبهذا أُزيل إحتمال أن تقوم البرامج بالعمل على هارد ديسك واحد وتزيد الحمل عليه.

في عام 2005 قامت الشركة بتقوية البنية التحتية عبر إضافة طبقة Layer طبقة من السيرفرات  وجعلتها بين سيرفرات الويب Web Server  وسيرفرات قواعد البيانات Database Servers وذلك لتقوم بعمل التخزين المؤقت لأكثر المعلومات التي يتم طلبها بشكل متكرر,وبهذه الطريقة لن يتم طلب المعلومة في كل مرة من سيرفر قواعد البيانات.

بالرغم من كل هذه القياسات والاحتياطات التي تقوم بها MySpace  ما يزال فريق التطوير يبذل جهوداً وحتى اليوم في حل هذه المعضلة و اللجوء الى تطوير تقنيات قواعد البيانات في ظل هذا النمو الذي يجتاح هذا الموقع الكبير.

 

 

Exit mobile version