ربما مازالت MySQL هي الخيار التقني الإقتصادي الاول للكثير من المواقع و التطبيقات السحابية التي تحتاج إلى معالجة بيانات OLTP كالانظمة المالية و شبيهاتها فهي تعمل على نظام تشغيل Linux ( مجاني ) و لا تحتاج لأن تدفع لها تراخيص كـMSSQL و Oracle و أدائها جيد جداً لكن ... ( سلسلة )
لكن MySQL تعتبر "RDBMS" و ليست NoSQL مع تحفظ على مصطلح Relational Database لاسباب تقنية تخرجها هي و غيرها من قواعد البيانات المعروفة من هذه الدائرة ربما اخصص لها سلسلة للحديث عن هذا الموضوع.
قواعد البيانات الـRelational تفتقر عادة إلى الScalabilty فلو كان لديك قاعدة بيانات عليها لا يمكن توزيعها على عدة خوادم كما هو الحال عند استخدام قواعد بيانات NoSQL مثل Apache Cassandra او Oracle NoSQL التي تعطيك وهم أنك تعمل على RD و لكنها ليست كذلك.
ما يكروسوفت مثلاً قدمت حلاً هو الـAvailability Group يعتمد على فصل خادم الكتابة عن القراءة و بإمكانك عمل Scale out للقراءة عن طريق Replicas لكن بيانات قواعد البيانات متماثلة فلا يوجد توزيع للQuery كما في Cassandra مثلاً.
مثلاً في Cassandra لا يمكنك عمل Join بين الجداول إلا بمساعدة ادوات خارجية كـODBC Connector او SparkSQL و سأستبعد قواعد البيانات الأخرى من نوع Document مثل MongoDB و CouchDB التي لا تخدمك حينما يتعلق الأمر بالTransactions
اما اوراكل فقد اشترت من HP قاعدة بياناتها SmallBase عام 2005 و اسمتها Oracle TimesTen ربما بعضكم يعرفها فهي Scalable و In-Memory في نفس الوقت لكن ارى ان التسويق لها ضعيف نوعاً ما لكن هي مناسبة لمن لديه Oracle Database ويعاني من مشكلة الScalability لكن عليك شراء التراخيص.
هناك الكثير من الشركات التي تنوع عادة قواعد بياناتها و تستخدم نوع قاعدة البيانات المناسب لكل نوع من البيانات فتستخدم MySQL للTransactions و NoSQL لملفات عملائها مثلاً و تستخدم In-Memory Database لتسريع الخدمة بتخزين البيانات الاكثر طلباً في الMemory.
اذكر بالمشكلة الرئيسية لدينا و هي ماذا يمكننا فعله عندما تستهلك قاعدة بيانات MySQL كل موارد الخادم المتاحة بحيث لا تبقى هناك فرصة للScale UP و لا يبقى امامنا إلا عمل Scale Out ؟ مالبديل الموازي الذي يمكننا "تهجير" البيانات إليه و يغنينا عن Redis و MongoDB و غيرها؟
للعلم هذه قد تكون دعاية "غير مدفوعة" لمنتج سأكتب عنه هذه الليلة كونه يستحق الإشادة خصوصاً لمن لديه MySQL و اتوقع ان يسود عالم قواعد البيانات في المستقبل القريب. سأكتب عنه هذه الليلة و الذي سيكون جزء من الArchitecture لحلنا القادم.
جاري تحميل الاقتراحات...