ما هي قاعدة البيانات الموزعة؟
تقوم قاعدة البيانات الموزعة بتوزيع البيانات عبر خوادم (عقد) متعددة في مواقع مختلفة. تنص نظرية CAP على أنه يمكنك ضمان اثنتين فقط من ثلاث خصائص: الاتساق (كل قراءة ترى آخر كتابة)، والتوفر (كل طلب يحصل على استجابة)، وتحمل التقسيم (يعمل النظام رغم انقسامات الشبكة).
لماذا هذا مهم؟ كل خدمة إنترنت رئيسية من Google إلى Netflix تعتمد على قواعد البيانات الموزعة. فهم المفاضلات بين الاتساق والتوفر أمر ضروري لبناء أنظمة موثوقة وقابلة للتوسع تخدم مليارات المستخدمين.
📖 تعمق أكثر
تشبيه 1
تخيل نظام مكتبة له فروع في 5 مدن، تشترك جميعها في نفس الكتالوج. عندما يقوم شخص ما بمراجعة كتاب في الفرع أ، تحتاج جميع الفروع الأخرى إلى تحديث سجلاتها. إذا انقطع خط الهاتف إلى الفرع C (قسم شبكة)، فقد يستمر الفرع C في عرض الكتاب باعتباره متاحًا - وهذه مشكلة تناسق. يمكنك قفل كل عمليات الإقراض حتى يتم إعادة اتصال الفرع C (اختيار الاتساق)، أو السماح لكل فرع بمواصلة الإقراض بشكل مستقل والتسوية لاحقًا (اختيار التوفر).
تشبيه 2
فكر في محادثة جماعية مع الأصدقاء من مختلف البلدان. عند إرسال رسالة، يجب أن يراها الجميع بنفس الترتيب. ولكن إذا انقطع اتصال الإنترنت لدى شخص ما، فإنه يفقد الرسائل وقد يرد على معلومات قديمة - مما يؤدي إلى إنشاء سلاسل محادثات متضاربة. تواجه قواعد البيانات الموزعة هذه المشكلة بالضبط على نطاق واسع، وتستخدم تقنيات مثل الساعات المتجهة وCRDTs لفرز الفوضى عندما يعيد الجميع الاتصال.
🎯 نصائح المحاكي
مبتدئ
ابدأ بـ 5 عقد وعامل النسخ 3 - وهذا يعني أنه يتم تخزين كل جزء من البيانات على 3 من العقد الخمس
متوسط
قارن تناسق الكتابة ALL مقابل ONE — ALL أبطأ ولكنه يضمن أن كل نسخة متماثلة تحتوي على أحدث البيانات
خبير
قم بتعطيل Vector Clocks وقم بتشغيل عمليات الكتابة المتزامنة أثناء القسم لمراقبة التعارضات التي لم يتم حلها
📚 المصطلحات
🏆 شخصيات رئيسية
Eric Brewer (2000)
تمت صياغة نظرية CAP في جامعة كاليفورنيا في بيركلي، والتي شكلت بشكل أساسي تصميم قاعدة البيانات الموزعة من خلال إثبات استحالة ضمان الاتساق والتوافر والتسامح مع الأقسام في نفس الوقت
Leslie Lamport (1998)
أنشأ خوارزمية إجماع باكسوس وكان رائدًا في نظرية الأنظمة الموزعة بمفاهيم مثل الساعات المنطقية، والطوابع الزمنية لامبورت، ومشكلة الجنرالات البيزنطيين
Diego Ongaro (2014)
صمم خوارزمية إجماع رافت في جامعة ستانفورد، مما يجعل الإجماع الموزع مفهومًا وعمليًا لأنظمة العالم الحقيقي مثل etcd وCockroachDB
Werner Vogels (2007)
قاد تصميم Dynamo من Amazon، الذي قدم تجزئة متسقة وساعات متجهة ونصابًا غير مرتب - مما ألهم Cassandra وRiak وحركة NoSQL بأكملها
Jeff Dean & Wilson Hsieh (2012)
تم تصميم Google Spanner بشكل مشترك، وهي أول قاعدة بيانات موزعة عالميًا مع معاملات متسقة خارجيًا باستخدام TrueTime API ومزامنة GPS/الساعة الذرية
Marc Shapiro (2011)
أنواع البيانات المكررة الرائدة الخالية من التعارض (CRDTs) في INRIA، مما يوفر أسسًا رياضية للاتساق النهائي الخالي من التنسيق
🎓 مصادر التعلم
- Brewer's Conjecture and the Feasibility of Consistent, Available, Partition-Tolerant Web Services [paper]
الدليل الرسمي لنظرية CAP، الذي يحدد نتيجة الاستحالة الأساسية للأنظمة الموزعة (ACM SIGACT News، 2002) - Dynamo: Amazon's Highly Available Key-value Store [paper]
ورقة أمازون المؤثرة حول التخزين الموزع المتسق في نهاية المطاف باستخدام التجزئة المتسقة، والساعات المتجهة، والنصاب القانوني غير المستقر (SOSP 2007) - Spanner: Google's Globally Distributed Database [paper]
قاعدة بيانات Google المتسقة عالميًا المستندة إلى TrueTime والتي تحقق الاتساق الخارجي من خلال نظام تحديد المواقع العالمي (GPS) ومزامنة الساعة الذرية (OSDI 2012) - In Search of an Understandable Consensus Algorithm (Raft) [paper]
خوارزمية إجماع Raft مصممة لسهولة الفهم، وتستخدم الآن في etcd وCockroachDB وTiKV (USENIX ATC 2014) - Designing Data-Intensive Applications [article]
دليل مارتن كليبمان الشامل لأساسيات الأنظمة الموزعة، والنسخ المتماثل، والتقسيم، ونماذج الاتساق - Jepsen.io [article]
اختبار كايل كينجسبري الصارم وتحليله لمطالبات صحة قاعدة البيانات الموزعة في ظل ظروف الفشل الحقيقية - The Raft Consensus Algorithm Visualization [article]
تصور تفاعلي لخوارزمية إجماع رافت مع اختيار القائد خطوة بخطوة ونسخ السجل