قابلية توسع قاعدة البيانات

تُعرف قابلية توسع قواعد البيانات بقدرتها على التعامل مع تغيرات الطلب من خلال إضافة الموارد أو إزالتها. وتستخدم قواعد البيانات مجموعة متنوعة من التقنيات لتحقيق ذلك. [ 1 ] ووفقًا لمارك بروكر: "يكون النظام قابلاً للتوسع في النطاق الذي تكون فيه التكلفة الحدية لعبء العمل الإضافي ثابتة تقريبًا". تتوافق تقنيات الحوسبة بلا خوادم مع هذا التعريف، ولكن يجب مراعاة التكلفة الإجمالية للملكية، وليس فقط تكلفة البنية التحتية. [ 2 ]

تاريخ

كان الهدف الأساسي من تطوير قابلية التوسع في قواعد البيانات هو توفير الخدمة على أجهزة كمبيوتر أصغر حجمًا. فقد عملت أنظمة إدارة قواعد البيانات الأولى، مثل IMS، على أجهزة الكمبيوتر المركزية . أما الجيل الثاني، الذي شمل Ingres و Informix و Sybase و RDB و Oracle، فقد ظهر على أجهزة الكمبيوتر الصغيرة . بينما عمل الجيل الثالث، الذي شمل dBase وOracle (مرة أخرى)، على أجهزة الكمبيوتر الشخصية. [ 3 ]

خلال الفترة نفسها، اتجه الاهتمام نحو معالجة كميات أكبر من البيانات وأحمال عمل أكثر تطلبًا. تمثلت إحدى الابتكارات البرمجية الرئيسية في أواخر ثمانينيات القرن الماضي في تقليل دقة تأمين التحديثات من الجداول وكتل القرص إلى الصفوف الفردية. وقد أدى ذلك إلى القضاء على عنق زجاجة حرج في قابلية التوسع، حيث كان من الممكن أن تؤدي الأقفال الأقل دقة إلى تأخير الوصول إلى الصفوف حتى وإن لم تكن مشاركة بشكل مباشر في معاملة. وكانت الأنظمة السابقة غير حساسة تمامًا لزيادة الموارد. [ 4 ]

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

وشمل التغيير الأكثر أهمية السماح للمعاملات الموزعة بالتأثير على البيانات المخزنة على أجهزة كمبيوتر منفصلة، ​​باستخدام بروتوكول الالتزام ثنائي المرحلة ، مما أدى إلى إنشاء بنية لا تشارك فيها البيانات . [ 5 ]

وفي وقت لاحق، قدمت أوراكل بنية "المشاركة الكاملة" ، التي وفرت وظائف كاملة على مجموعات الخوادم المتعددة. [ 6 ]

ومن الابتكارات الأخرى تخزين نسخ من الجداول على أجهزة كمبيوتر متعددة ( تكرار قواعد البيانات )، مما أدى إلى تحسين التوافر (حيث يمكن استمرار المعالجة على نسخة حتى في حالة تعطل النظام الرئيسي) وقابلية التوسع، لا سيما للاستعلام/التحليل، حيث يمكن توجيه الطلبات إلى النسخة إذا وصل النظام الأساسي إلى سعته القصوى. [ 7 ]

في أوائل القرن الحادي والعشرين، حظيت أنظمة NoSQL بشعبية متزايدة مقارنةً بقواعد البيانات العلائقية في بعض أحمال العمل. وشملت الدوافع زيادة قابلية التوسع ودعم المستندات وأنواع البيانات "غير العلائقية" الأخرى. وغالبًا ما تم التضحية ببروتوكولات اتساق ACID الصارمة التي تضمن اتساقًا تامًا في جميع الأوقات، لصالح الاتساق النهائي الذي يضمن أن تُعيد جميع العُقد في النهاية أحدث البيانات. بل إن بعضها سمح بفقدان المعاملات أحيانًا، طالما كان النظام قادرًا على معالجة عدد كافٍ من الطلبات. [ 8 ] وكان أبرز نظام مبكر هو BigTable / MapReduce من جوجل ، الذي طُوّر عام 2004. وقد حقق قابلية توسع شبه خطية عبر مزارع خوادم متعددة ، على حساب ميزات مثل معاملات الصفوف المتعددة وعمليات الربط. [ 9 ]

في عام 2007، تم تطوير أول نظام NewSQL ، وهو H-Store . تحاول أنظمة NewSQL الجمع بين قابلية التوسع في NoSQL ومعاملات ACID وواجهات SQL. [ 10 ]

أبعاد

تتضمن قابلية توسع قواعد البيانات ثلاثة أبعاد أساسية: كمية البيانات، وحجم الطلبات، وحجم الطلبات. تتفاوت أحجام الطلبات: فالمعاملات تؤثر عادةً على كميات صغيرة من البيانات، ولكنها قد تصل إلى آلاف الطلبات في الثانية؛ أما الاستعلامات التحليلية فعادةً ما تكون أقل عددًا، ولكنها قد تصل إلى كميات أكبر من البيانات. ومن المفاهيم ذات الصلة المرونة ، وهي قدرة النظام على إضافة سعة أو تقليصها بسلاسة لتلبية متطلبات أحمال العمل المتغيرة. [ 11 ]

رَأسِيّ

يشير التوسع الرأسي لقواعد البيانات إلى قدرة نظام قاعدة البيانات على الاستفادة الكاملة من الأنظمة ذات التكوين الأقصى، والتي تشمل عادةً المعالجات المتعددة ذات الذاكرة الكبيرة وسعة التخزين الهائلة. تتميز هذه الأنظمة بسهولة إدارتها نسبيًا، ولكنها قد توفر توافرًا أقل. مع ذلك، لكل جهاز كمبيوتر تكوين أقصى. إذا تجاوزت أحمال العمل هذا الحد، فإن الخيارات المتاحة هي إما الانتقال إلى نظام آخر أكبر، أو إعادة تصميم النظام لتحقيق قابلية التوسع الأفقي. [ 11 ]

أفقي

يتضمن التوسع الأفقي لقواعد البيانات إضافة المزيد من الخوادم للعمل على عبء عمل واحد. وتأتي معظم الأنظمة القابلة للتوسع الأفقي مصحوبة بتنازلات في الوظائف. إذا كان التطبيق يتطلب المزيد من الوظائف، فقد يكون الانتقال إلى نظام قابل للتوسع الرأسي هو الخيار الأفضل. [ 11 ]

التقنيات

الأجهزة

تعمل قواعد البيانات على أجهزة فردية تتراوح سعتها من الساعات الذكية إلى الحواسيب العملاقة وصولاً إلى مزارع خوادم متعددة قابلة لإعادة التكوين بشفافية. [ 3 ] كما تم توسيع نطاق قواعد البيانات رأسيًا لتشغيلها على معالجات دقيقة 64 بت ، ووحدات معالجة مركزية متعددة النوى ، ومعالجات متعددة كبيرة الحجم بتقنية SMP ، باستخدام تطبيقات متعددة الخيوط .

الخلاف

يتطلب الاستغلال الأمثل لتكوين الأجهزة استخدام تقنيات تأمين متنوعة، بدءًا من تأمين قاعدة البيانات بأكملها، مرورًا بتأمين الجداول بأكملها، وصولًا إلى تأمين كتل القرص، وانتهاءً بتأمين صفوف الجداول الفردية. وتعتمد دقة التأمين المناسبة على حجم العمل. فكلما صغر حجم الكائن المُؤمَّن، قلّ احتمال تداخل طلبات قاعدة البيانات مع بعضها البعض أثناء خمول الجهاز. وعادةً ما تكون تأمينات الصفوف ضرورية لدعم تطبيقات معالجة المعاملات ذات الحجم الكبير، على حساب زيادة الحمل على المعالجة لإدارة العدد الأكبر من التأمينات. [ 4 ]

علاوة على ذلك، تضمن بعض الأنظمة أن يرى الاستعلام عرضًا متسقًا زمنيًا لقاعدة البيانات عن طريق قفل البيانات التي يفحصها الاستعلام لمنع أي تحديث من تعديلها، مما قد يؤدي إلى توقف العمل. وبدلاً من ذلك، تستخدم بعض قواعد البيانات اتساق القراءة متعدد الإصدارات لتجنب أقفال القراءة (المانعة) مع الاستمرار في توفير نتائج استعلام متسقة. [ 12 ]

قد تحدث مشكلة اختناق أخرى في بعض الأنظمة عندما تحاول طلبات متعددة الوصول إلى نفس البيانات في الوقت نفسه. على سبيل المثال، في أنظمة معالجة المعاملات الفورية (OLTP)، قد تحاول معاملات متعددة إدخال بيانات في الجدول نفسه في الوقت نفسه. في نظام "لا مشاركة"، تتم معالجة جميع عمليات الإدخال هذه في أي لحظة بواسطة خادم واحد يدير ذلك الجزء ( الشظية ) من الجدول، مما قد يُرهقه، بينما لا يكون لدى بقية النظام الكثير ليفعله. تستخدم العديد من هذه الجداول رقمًا تسلسليًا كمفتاح أساسي، ويزداد هذا الرقم مع كل صف جديد يُضاف. قد يتعرض فهرس هذا المفتاح أيضًا للتنازع (ارتفاع درجة الحرارة) أثناء معالجته لعمليات الإدخال هذه. أحد الحلول لهذه المشكلة هو عكس أرقام المفتاح الأساسي . يؤدي هذا إلى توزيع عمليات الإدخال في كل من الجدول والمفتاح عبر أجزاء متعددة من قاعدة البيانات. [ 13 ]

التقسيم

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

النسخ

تحتفظ قواعد البيانات المكررة بنسخ من الجداول أو قواعد البيانات على أجهزة كمبيوتر متعددة. وتُعد تقنية التوسع هذه ملائمة بشكل خاص للبيانات التي نادراً ما يتم تحديثها أو لا يتم تحديثها على الإطلاق، مثل سجلات المعاملات أو جداول الضرائب. [ 7 ]

الحواسيب المجمعة

تُستخدم طرائق متنوعة لتوسيع نطاق العمليات بما يتجاوز حدود جهاز حاسوب واحد. يعتمد نظام HP Enterprise NonStop SQL على بنية "عدم المشاركة" ، حيث لا تتم مشاركة البيانات أو الذاكرة بين الخوادم المختلفة. يقوم منسق بتوجيه طلبات قاعدة البيانات إلى الخادم المناسب. توفر هذه البنية قابلية توسع شبه خطية.

يستخدم معيار X/Open XA المدعوم على نطاق واسع مراقبًا عالميًا للمعاملات لتنسيق المعاملات الموزعة بين موارد المعاملات شبه المستقلة المتوافقة مع XA.

يستخدم Oracle RAC نموذجًا مختلفًا لتحقيق قابلية التوسع، قائمًا على بنية "مشاركة كل شيء". يتضمن هذا النهج استخدام القرص المشترك الذي يسمح لأجهزة كمبيوتر متعددة بالوصول إلى أي قرص في المجموعة. وتُمكّن تقنيات التخزين المتصلة بالشبكة (NAS) وشبكات منطقة التخزين (SAN)، بالإضافة إلى الشبكات المحلية وتقنية قناة الألياف ، من إنشاء مثل هذه التكوينات. يتضمن هذا النهج ذاكرة تخزين مؤقت منطقية "مشتركة" تُتاح فيها البيانات المخزنة مؤقتًا في ذاكرة الخادم للخوادم الأخرى دون الحاجة إلى قراءتها من القرص مرة أخرى. تُنقل كل صفحة من خادم إلى آخر لتلبية الطلبات. تتم التحديثات عادةً بسرعة كبيرة، بحيث يمكن تحديث صفحة "شائعة" من خلال عمليات متعددة مع تأخير ضئيل. يُزعم أن هذا النهج يدعم مجموعات تحتوي على ما يصل إلى 100 خادم. [ 14 ]

يشكك بعض الباحثين في القيود المتأصلة في أنظمة إدارة قواعد البيانات العلائقية . فعلى سبيل المثال، يرى مشروع GigaSpaces أن بنية البيانات القائمة على المساحة ضرورية لتحقيق الأداء الأمثل وقابلية التوسع. بينما يقدم مشروع Base One حجته لصالح قابلية التوسع القصوى ضمن تقنية قواعد البيانات العلائقية السائدة. [ 15 ]

انظر أيضاً

مراجع

  1. بوندي، أندريه ب. (2000). خصائص قابلية التوسع وتأثيرها على الأداء . وقائع ورشة العمل الدولية الثانية حول البرمجيات والأداء - WOSP '00. ص  195. doi : 10.1145/350391.350432 . ISBN 158113195X.
  2. بناء تطبيقات بدون خادم باستخدام Knative . دار نشر O'Reilly Media. رقم ISBN 9781098142049.
  3. 1 2 تشوبرا، راجيف (2010). نظام إدارة قواعد البيانات (DBMS): منهج عملي . دار نشر إس. تشاند. ص 33. ISBN  9788121932455.
  4. 1 2 "أقفال الصفوف مقابل أقفال الجداول في أوراكل" . www.dba-oracle.com . تم الاطلاع عليه بتاريخ 11 أبريل 2019 .
  5. "مزايا بنية "لا مشاركة" لتحديثات سلسة وغير مُعطِّلة" . solidfire.com. ١٧ سبتمبر ٢٠١٤. مؤرشف من الأصل في ٢٤ أبريل ٢٠١٥. تم الاطلاع عليه في ٢١ أبريل ٢٠١٥ .
  6. "دليل إدارة ونشر مجموعات التطبيقات الحقيقية" . docs.oracle.com . تم الاطلاع عليه بتاريخ 11 أبريل 2019 .
  7. 1 2 "مقدمة في نسخ قواعد البيانات" . www.brianstorti.com . 23 مايو 2017. تم الاطلاع عليه بتاريخ 11 أبريل 2019 .
  8. مارتن زابليتال (2015-06-11). "تحليل البيانات ذات الحجم الكبير على منصة Typesafe التفاعلية" .{{cite journal}}يتطلب الاستشهاد بالمجلة ( مساعدة )|journal=
  9. "نظرة عامة على Cloud Bigtable | وثائق Cloud Bigtable" . Google Cloud . تم الاطلاع عليه بتاريخ 11 أبريل 2019 .
  10. أسليت، ماثيو (2011). "كيف ستستجيب الشركات الرائدة في مجال قواعد البيانات لتقنيات NoSQL وNewSQL؟" (ملف PDF) . مجموعة 451 (نُشر في 4 أبريل 2011) . تم الاطلاع عليه في 6 يوليو 2012 .
  11. 1 2 3 برانسون، توني (2016-12-06). "نهجان رئيسيان لتوسيع نطاق قواعد البيانات" . مجلة أمن المعلومات . تم الاطلاع عليه بتاريخ 2019-04-11 .
  12. "Clojure - المراجع والمعاملات" . clojure.org . تم الاطلاع عليه بتاريخ 12-04-2019 .
  13. "مقدمة إلى فهارس المفاتيح العكسية: الجزء الأول" . مدونة ريتشارد فوت لأوراكل . 14 يناير 2008. تم الاطلاع عليه بتاريخ 13 أبريل 2019 .
  14. "التجميع" (ملف PDF) . Oracle.com . تم الاطلاع عليه بتاريخ 7 نوفمبر 2012 .
  15. بيس ون (2007). "قابلية توسع قواعد البيانات - تبديد الخرافات حول حدود بنية قواعد البيانات" . تم الاطلاع عليه في 23 مايو 2007 .