تصميم قاعدة البيانات: الارتباط ونظرية CAP.
- 22 دقائق
وبدون النسخ المتماثل، الارتباط لا يشكل مصدر قلق. يستلزم النسخ المتماثل الاحتفاظ بنسخ متعددة (أو نسخ متماثلة) من نفس البيانات عبر أجهزة متعددة، بينما يوفر التناسق عرضًا/حالة متناسقة على مستوى النظام للنسخ المتماثلة عبر العديد من العملاء/العمليات. وكما ورد فيما سبق، يتم استنساخ عناصر البيانات لسببين رئيسيين هما: الأداء والموثوقية. وفيما يتعلق بالأداء، يعد النسخ أمرًا بالغ الأهمية عندما يحتاج النظام إلى تغيّر السعة الخاصة بالأرقام (كما هو الحال بشكل أساسي في المستودعات في المجموعة الخاصة والعامة) وفي المناطق الجغرافية (كما هو الحال عادةً مع المستودعات في المجموعة العامة). على سبيل المثال، عندما يتعين على عدد متزايد من العمليات الوصول إلى البيانات التي تتم إدارتها بواسطة خادم تخزين واحد، يمكن تحسين الأداء عن طريق نسخ البيانات عبر خوادم متعددة (بدلاً من وجود خادم واحد فقط) ثم تقسيم العمل عبر الخوادم. يسمح هذا القسم بتقديم الطلبات على نحو متزامن ومن ثم زيادة سرعة النظام. ومن ناحية التباين، يمكن ضمان النسخ المتماثل عبر المناطق الجغرافية (على سبيل المثال، كما هو مطبّق بواسطة Azure) عن طريق استنساخ نسخ من البيانات على مقربة من العمليات المطلوبة لتقليل أوقات الوصول إلى البيانات. فيما يتعلق بالموثوقية، يتيح النسخ المتماثل عملية توفير التسامح مع الخطأ أفضل البيانات ضد الفساد والبيانات المفقودة، وهو متطلب رئيسي على المجموعة. وعلى وجه الخصوص، في حالة فقدان النسخة المماثلة أو تلفها، يمكن الوصول إلى نسخة أخرى متماثلة صالحة (إذا تم الاحتفاظ بها) بدلاً من ذلك.
يُنتج النسخ المتماثل عدة نسخ طبق الأصل من البيانات، ويضمن الارتباط أن تظل هذه النسخ المتماثلة متسقة بحيث يمكن للعمليات المختلفة الوصول إليها (أي القراءة والكتابة). على وجه التحديد، من المفترض أن تكون النسخ المتماثلة في مجموعة متناسقة عندما تظهر في حالة متطابقة مع عمليات الوصول المتزامن. وتُعد القدرة على التعامل مع مؤشرات العمليات المتزامنة على النسخ المتماثلة مع الحفاظ على التناسق أمرًا أساسيًا للتخزين الموزع بشكل عام والتخزين على السحابة بشكل خاص. خلال هذه الوحدة، سيتم مناقشة التناسق في سياق عمليات القراءة والكتابة التي يتم تنفيذها على النسخ المتماثلة المشتركة في مخزن بيانات موزعة (انظر الشكل 13). قد يكون مخزن البيانات الموزعة في شكل نظام الملفات الموزعة أو نظام ملفات متوازٍ أو قاعدة بيانات موزعة. ويمكن تحقيق الاتساق من خلال استخدام نموذج تناسق. نعرّف نموذج التناسق كاتفاقية بين العمليات ومخزن البيانات الموزعة. هذا التعريف يعني أنه إذا وافقت العمليات على تنفيذ قواعد محددة، فيتعهد مخزن البيانات الموزعة بتنفيذ تلك القواعد. يضم الفيديو التالي عددًا من نماذج التناسق.
نناقش ثلاثة نماذج تناسق بالتفصيل في هذه الوحدة: التناسق التسلسلي والاتساق السببي والتناسق النهائي.
الشكل 13: مخزن بيانات موزعة يمكن أن يكون نظام ملفات موزعة أو نظام ملفات متوازي أو قاعدة بيانات موزعة مع نسخ متماثلة يتم الاحتفاظ بها عبر أقراص التخزين الموزعة
التناسق المتسلسل
يسمى أيضا التناسق القوي أو الصارم، ويستلزم التناسق التسلسلي نشر التحديثات على جميع النسخ المتماثلة على الفور. يتطلب هذا عادة تطبيق التحديثات على النسخ المتماثلة ذات الصلة في التشغيل أو عملية ذرية. في أثناء الممارسة العملية، يُعد تنفيذ آلية الرجوع عبر النسخ المتماثلة المنتشرة على تغيّر السعة في مخزن البيانات الموزعة على نطاق واسع أمرًا صعبًا بطبيعته، خاصة في حالة كان من الضروري الانتهاء من التحديثات بسرعة. تنبع الصعوبات من أزمنة انتقال الوصول التي لا يمكن التنبؤ بها، والتي تفرضها شبكة منطقة التخزين الأساسية وعدم وجود ساعة عالمية يمكن استخدامها لطلب العمليات بسرعة ودقة. ولمعالجة هذه المشكلة، يمكن تخفيف متطلبات تنفيذ التحديثات كالعمليات الذرية. ويُقصد بتخفيف متطلبات التناسق أن النسخ المتماثلة لا تحتاج دائمًا أن تكون هي نفسها في جميع المواقع. سواء كان تخفيف التناسق مقبولاً أم لا، يعتمد على التطبيق الذي يتم تشغيله من خلال مخزن البيانات الموزعة. وعلى وجه التحديد، يعتمد تخفيف متطلبات التناسق على أنماط الوصول للقراءة والكتابة من التطبيق والغرض من استخدام النسخ المتماثلة. على سبيل المثال، يتم تكوين المستعرضات ووكلاء الويب لتخزين صفحات الويب في الذاكرات المؤقتة المحلية (وهذه تعد كتابة نسخ متماثل لأن كثيرًا من النسخ يتم الاحتفاظ بها لصفحة الويب نفسها) لتقليل أوقات الوصول للمراجع المستقبلية. ومن المقبول في بعض الحالات أن يتلقى المستخدمون صفحات ويب تالفة طالما، في نهاية الأمر وبسرعة كافية، سيتم تحديث صفحات الويب إلى أحدث الإصدارات المتاحة على خادم (خوادم) الويب الفعلية. ويُعد التناسق النهائي مثالاً على نموذج يناسب مثل هذه السيناريوهات.
الشكل 14: (أ) مخزن بيانات موزعة متناسق بالتسلسل، و(ب) مخزن بيانات موزعة غير متناسقة بشكل تسلسلي
يعتبر مخزن البيانات الموزعة متناسقة بشكل تسلسلي إذا كانت كافة العمليات تعتمد نفس تداخل عمليات القراءة والكتابة عند الوصول إلى النسخ المتماثلة بشكل متزامن. ويبين الشكل 14 مخزنين للبيانات الموزعة: مخزن بيانات متناسقًا بالتسلسل (انظر الشكل 14 (أ)) ومخزن بيانات متناسقًا بشكل غير متسلسل (انظر الشكل 14 (ب)). تشير الرموز W(x)a وR(x)b إلى قيمة كتابة ل إلى نسخة متماثلة x وقيمة قراءة b من النسخة المتماثلة x، على التوالي. ويبين الشكل أربع عمليات تعمل على نسخ متماثلة مطابقة لعنصر البيانات x. في الشكل 14(أ)، تكتب العملية P1 إلى x، وفي وقت لاحق (بالوقت المطلق)، تكتب العملية P2 b إلى x. بعد ذلك، تتلقى العمليات P3 وP4 القيمة b والقيمة الأحدث أولا عند قراءة x. وعلى هذا النحو، يبدو أن عملية الكتابة التي تتم بواسطة العملية p2 قد حدثت قبل العملية p1 ومن ثم فهي كُتبت قبل العمليتين p3 وp4 أيضًا. ومع ذلك، لا يزال الشكل 14(أ) يمثل مخزن بيانات موزعا متناسقا بشكل تسلسلي لأن العمليات P3 وP4 تواجه نفس تداخل العمليات (أي القراءة أولا ب ثم أ). ومن ناحية التباين، فإن العمليات P3 وP4 في الشكل 14 (ب) تشهدان تداخلاً مختلفًا بين العمليات، ما يشكل انتهاكًا لشرط التناسق المتسلسل.
التناسق السببي
ويُعد نموذج التناسق السببي بديلاً أضعف من نموذج التناسق التسلسلي. أولا، السببية تعني أنه إذا كانت العملية ب ناتجة أو متأثرة بعملية سابقة أ، فإن كل عملية تصل إلى مخزن البيانات الموزعة يجب أن ترى أولا أ ثم ب. يفرض مخزن البيانات الموزعة المتناسق سببيًا التناسق عبر العمليات التي قد تكون ذات صلة سببية. يمكن أن تظهر العمليات التي لا يحتمل أن تكون ذات صلة سببية في العمليات في أي تداخل وتتم الإشارة إليها كعمليتين متزامنتين. وتبين الرسوم التوضيحية 15 مخزنين للبيانات الموزعة متناسقين سببيًا (الرسوم التوضيحية 15(أ) و15(ج)) ومخزن بيانات موزعة غير متناسق سببيًا (الشكل 15 (ب)). في الشكل 15(أ)، من المحتمل أن يعتمد W(x)b الذي يتم تنفيذه بواسطة العملية P2 على W(x)a التي تحملها العملية P1 لأن b قد يكون نتيجة حساب يتضمنقراءة حسب العملية P2 (أي R(x)a) قبل كتابة b (أي W(x)b). وهكذا، فإن نتائج عمليتي الكتابة W(x)a وW(x)b التي تنفذها p1 وp2، على التوالي، يجب أن تظهر بنفس الترتيب في كل عملية قراءة. نظرا لأن العمليات P3 وP4 تقرأ أولا a ثم b، يقال إنها تلتزم بشرط السببية، مما يجعل مخزن البيانات الموزعة الأساسي متسقا سببيا. وعلى النقيض من ذلك، فإن العملية P3 في الشكل 15(ب) لا تلتزم بشرط السببية (أي أنها تقرأ أولا ب ثم أ)، مما يجعل مخزن البيانات الموزع الأساسي متسقا بشكل غير دائم. وأخيرًا، يوضح الشكل 15 (ج) وجود مخزن بيانات موزعة متناسق سببيًا، لأن W(x)a وW(x)b هما عمليتان متزامنتان؛ ومن ثم، يمكن أن تظهر نتائجها (أي R(x) a وR(x) b) بأي ترتيب في عمليات القراءة، وهو ما ينطبق على حالتي العمليات p3 وp4.
الشكل 15: (أ) مخزن بيانات موزعة متناسق سببيا، (ب) مخزن بيانات موزعة غير متناسق بشكل غير سببي، و(ج) مخزن بيانات موزعة متناسق سببيا
الاتساق النهائي "Eventual"
ويعتبر نموذج التناسق النهائي شكلاً أضعف من نماذج التناسق المتسلسلة والسببية. يُعني التناسق النهائي أن الكتابة على نسخة متماثلة لا تحتاج إلى نشر إلى كافة النسخ المتماثلة الأخرى فورًا ويمكن أن تتأخر (وفي أحيانًا أخرى لا تحتاج إلى نشر على الإطلاق) إذا كانت مقبولة من قبل التطبيقات. وعلى وجه التحديد، إذا تمكنت العملية p من الوصول إلى نسخة متماثلة محددة، R، $س$ من المرات في الدقيقة الواحدة، وR تم تحديثها "ص" من المرات في الدقيقة الواحدة، ثم إذا كان التطبيق يدل على انخفاض نسبة القراءة إلى الكتابة (أي $N << M$)، فإن كثيراً من الرسم الهندسي للنسخة المتماثلة لن يتم الوصول إليها بواسطة p، ما يجعل كل تلك التحديثات والاتصالات الشبكية المطلوبة لا طائل منها. في هذه الحالة، قد يكون من الأفضل تطبيق نموذج تناسق ضعيف حيث يتم تحديث R فقط عند الوصول إليها بواسطة P. وهذا، فهو أكثر كفاءة لنشر تحديث بطريقة بطيئة، حيث ترى عملية القراءة تحديثًا فقط بعد مرور بعض الوقت منذ أن حدث التحديث (وليس على الفور، كما هو الحال مع التناسق الصارم). إذا كانت التعارضات الناتجة عن عمليتين تحاول الكتابة باستخدام نفس البيانات (أي تعارض الكتابة والكتابة)، نادرًا ما تحدث أو لا تحدث أبدًا، فإنها غالبًا ما يكون تأخير نشر التحديث مقبولاً. نادرًا ما تحدث التعارضات مع أنظمة قواعد البيانات التي عادةً ما تستخدم التناسق النهائي. نناقش أنظمة قواعد البيانات بالتفصيل في القسم التالي. لاحظ أننا لم نقدم سوى جزء من القصة حول نماذج التناسق. ويغطي جزء آخر طريقة تنفيذ هذه النماذج. في هذه الوحدة، ينصب اهتمامنا على تعريف هذه النماذج وقابليتها للتطبيق على أنظمة التخزين على السحابة. ومع ذلك، نشير بإيجاز إلى أن التناسق التسلسلي يصعب تنفيذه في الممارسة العملية وأنه لا يُنفذ إلا على تغيّر السعة الضعيفة. بشكل عام، يتطلب التناسق التسلسلي استخدام آليات المزامنة مثل العمليات والتأمين. ومن ناحية التباين، يتضمن تنفيذ التناسق السببي إنشاء رسم بياني للتبعية يلتقط العمليات ذات الصلة السببية ويفرض تلك العمليات عبر عمليات الوصول. إحدى الطرق لتنفيذ مثل هذا النموذج هي استخدام الطوابع الزمنية المتجهة. يمكن تنفيذ التناسق النهائي بواسطة تجميع عمليات القراءة والكتابة في جلسات العمل واستخدام الطوابع الزمنية المتجهة.
خاصية آلية الرجوع والتناسق والعزل والقدرة على الصمود في قواعد البيانات
يمكن أن توفر قواعد البيانات خصائص المعاملات . تتضمن العملية وحدة عمل يتم تنفيذها داخل نظام إدارة قاعدة بيانات (أو نظام مماثل) مقابل قاعدة بيانات. وتعامل العمليات بطريقة متسقة وموثوق بها، ومستقلة عن العمليات الأخرى. تهدف العمليات في بيئة قاعدة بيانات إلى غرضين رئيسيين:
- لتوفير وحدات موثوقة من العمل التي تسمح بالتحقق الصحيح من الفشل والحفاظ على قاعدة بيانات متناسقة، حتى في حالات فشل النظام عند توقف التنفيذ (كليًا أو جزئيًا) والعديد من العمليات على قاعدة بيانات تبقى غير مكتملة، مع حالة غير واضحة.
- لتوفير عزل بين البرامج التي تقوم بالوصول إلى قاعدة بيانات بشكل متزامن. وإذا لم يتم توفير هذه العزلة، فإن نتائج البرنامج قد تكون خطأ.
ولفهم احتياجات العمليات جيداً، لا بد من وضع العمليات المالية التالية في الاعتبار التي تم تنفيذها من خلال حسابين بنكيين أ وب. بفرض أن المستخدم يرغب في تحويل 100 دولار من الحساب أ إلى الحساب ب. يمكن أن يتمثل ذلك التحويل في خطوتين:
- خصم 100 دولار من الحساب أ.
- إيداع الرصيد 100 دولار في الحساب ب.
بفرض أن هناك فشلاً في قاعدة البيانات حدث بين العمليتين 1 و2: تم خصم 100 دولار بنجاح من الحساب أ، ولكن لم يتم إيداعها في الحساب ب بنجاح. ستكون الحسابات وقاعدة البيانات نفسها في حالة غير متناسقة.
لحل هذه المشكلة، يمكن تعريف العمليات كعملية على النحو التالي:
- بدء العملية.
- خصم 100 دولار من الحساب أ.
- إيداع الرصيد 100 دولار في الحساب ب.
- إنهاء العملية.
أصبح من مسؤولية قاعدة البيانات الآن ضمان ذرية هذه المعاملة - أن المعاملة إما ناجحة في مجملها (ملتزمة) أو لا يتم تنفيذها على الإطلاق (التراجع). يجب أن تكون قاعدة البيانات متسقة بعد اكتمال المعاملة؛ أي يجب أن تكون قاعدة البيانات في حالة صالحة بعد تنفيذ المعاملة، ويجب عدم انتهاك أي قواعد محددة للسجلات في قاعدة البيانات (على سبيل المثال، قد لا يحتوي حساب التوفير على رصيد سالب). يجب ألا تتداخل أي معاملات تحدث بشكل متزامن مع الحسابات مع بعضها البعض، مما يوفر العزلة. وأخيرا، يجب أن تكون المعاملة دائمة، ما يعني أن الإجراءات التي يتم تنفيذها في المعاملة يجب أن تستمر بعد الالتزام بالمعاملة في قاعدة البيانات. تعرف خصائص الذرية والاتساق والعزل والمتانة بشكل جماعي باسم خصائص ACID للمعاملات ومن المتوقع أن تتبعها معظم RDBMSs المستخدمة لمعالجة المعاملات. يوفر الفيديو التالي نظرة عامة على خصائص ACID في قواعد البيانات:
- Atomic: المعاملة غير قابلة للتجزئة - إما أن يتم تطبيق جميع العبارات في المعاملة على قاعدة البيانات، أو لا يتم تطبيق أي منها.
- متناسق: تظل قاعدة البيانات في حالة متناسقة قبل تنفيذ المعاملة وبعدها.
- معزول: على الرغم من أنه يمكن تنفيذ معاملات متعددة من قبل مستخدم واحد أو أكثر في وقت واحد، يجب ألا ترى معاملة واحدة تأثيرات المعاملات المتزامنة الأخرى.
- دائم: بمجرد حفظ المعاملة في قاعدة البيانات (إجراء يشار إليه في تحليل برمجة قاعدة البيانات كتثبيت)، من المتوقع أن تستمر تغييراتها.
لماذا لا يمكنك الحصول على كل شيء: نظرية CAP
في عام 1999، اقترح بروير1 نظرية تصف قيود تخزين البيانات الموزعة تسمى نظرية CAP. تنص نظرية CAP على أن أي نظام تخزين موزع مع بيانات مشتركة يمكن أن يضم على الأكثر اثنتين من الخصائص الثلاث المرغوب فيها التالية:
- التناسق: التناسق هو حالة ترى فيها كل عقدة دائما نفس البيانات في أي لحظة معينة (تناسق صارم).
- التوفر: ضمان تلقي كل طلب استجابة حول ما إذا كان ناجحا أو فاشلا هو ضمان التوفر.
- التسامح مع القسم: قسم الشبكة هو شرط حيث لا يمكن لعقد النظام الموزع الاتصال ببعضها البعض. يعني التسامح مع القسم أن النظام يستمر في العمل بشكل طبيعي على الرغم من فقدان الرسائل العشوائية أو فشل جزء من النظام.
يقدم الفيديو التالي نظرة عامة عن نظرية CAP:
أسهل طريقة لفهم CAP هو التفكير في عقدتين من نظام التخزين الموزعة على جانبين متقابلين من تقسيم شبكة الاتصال (الشكل 16). سيؤدي السماح لعقدة واحدة على الأقل لتحديث الحالة العقد إلى عدم تناسق تلك العقد، ومن ثم فقدان C. وبالمثل، إذا كان الاختيار هو الحفاظ على التناسق، يجب أن يعمل جانب واحد من القسم كما لو كان غير متوفر، ومن ثم مصادرة A. فقط عندما تواصل العقد من الممكن الحفاظ على التناسق والتوفر، ومن ثم فقدان P.
ومن أمثلة ذلك، خذ بعين الاعتبار حالة RDBMS أحادية العقد التقليدية. في هذا السيناريو، يمكن ضمان التناسق والتوفر، بينما مفهوم التسامح مع القسم غير موجود لأن قاعدة البيانات تتعامل مع عقدة واحدة.
عندما كانت شركات مثل Microsoft تصمم قواعد بيانات تغيّر السعة لخدمة الملايين من العملاء، كان توفرها على مدار الساعة طوال أيام الأسبوع أساسيًا، حيث إن بضع دقائق من التوقف تعني فقدان الإيرادات. عند قياس أنظمة البيانات المشتركة الموزعة إلى مئات أو آلاف الأجهزة، يزيد احتمال فشل عقدة أو أكثر (ومن ثم إنشاء تقسيم شبكة الاتصال) بشكل ملحوظ. لذلك، بتطبيق نظرية CAP، للحصول على ضمانات قوية على توفر والتسامح مع القسم، يجب على المرء تقديم تناسق صارم في قاعدة بيانات موزعة لتغيّر السعة وعالية الأداء.
الشكل 16: نظرية CAP موضحة
المراجع
- إريك بروير (2000). نحو أنظمة موزعة قوية، وقائع ندوة ACM السنوية بشأن مبادئ الحوسبة الموزعة
اختبر معلوماتك
الملاحظات
هل كانت هذه الصفحة مفيدة؟
لا
هل تحتاج إلى مساعدة مع هذا الموضوع؟
هل تريد محاولة استخدام Ask Learn لتوضيح هذا الموضوع أو إرشادك خلاله؟