طوافة أم لا؟ أفضل حل لاتساق البيانات في قواعد البيانات السحابية الأصلية
صورة الغلاف
كتب هذا المقال شياوفان لوان ونسخته أنجيلا ني.
النسخ المتماثل المستند إلى الإجماع هو استراتيجية معتمدة على نطاق واسع في العديد من قواعد البيانات الموزعة على السحابة الأصلية. ومع ذلك، فإن لها بعض أوجه القصور وهي بالتأكيد ليست الحل السحري.
يهدف هذا المنشور أولاً إلى شرح مفاهيم النسخ المتماثل والاتساق والإجماع في قاعدة البيانات السحابية الأصلية والموزعة، ثم توضيح سبب كون الخوارزميات القائمة على الإجماع مثل Paxos و Raft ليست الحل السحري، وأخيرًا اقتراح حل للنسخ المتماثل القائم على الإجماع.
الانتقال إلى:
- فهم النسخ المتماثل والاتساق والإجماع
- النسخ المتماثل القائم على الإجماع
- استراتيجية النسخ المتماثل للسجل لقاعدة البيانات السحابية الأصلية والموزعة
- ملخص
فهم النسخ المتماثل والاتساق والإجماع
قبل التعمق في إيجابيات وسلبيات Paxos و Raft، واقتراح استراتيجية النسخ المتماثل للسجل الأنسب، نحتاج أولاً إلى إزالة الغموض عن مفاهيم النسخ المتماثل والاتساق والتوافق.
لاحظ أن هذا المقال يركز بشكل أساسي على مزامنة البيانات/السجل الإضافي. لذلك، عند الحديث عن النسخ المتماثل للبيانات/السجلات، تتم الإشارة فقط إلى النسخ المتماثل للبيانات التزايدية، وليس البيانات التاريخية.
النسخ المتماثل
النسخ المتماثل هو عملية إنشاء نسخ متعددة من البيانات وتخزينها في أقراص أو عمليات أو أجهزة أو مجموعات مختلفة وما إلى ذلك، بغرض زيادة موثوقية البيانات وتسريع استعلامات البيانات. نظرًا لأنه في عملية النسخ المتماثل، يتم نسخ البيانات وتخزينها في مواقع متعددة، تكون البيانات أكثر موثوقية في مواجهة التعافي من أعطال الأقراص أو أعطال الأجهزة المادية أو أخطاء المجموعات. بالإضافة إلى ذلك، يمكن أن تعزز النسخ المتماثلة المتعددة للبيانات من أداء قاعدة البيانات الموزعة من خلال تسريع الاستعلامات بشكل كبير.
هناك أنماط مختلفة من النسخ المتماثل، مثل النسخ المتزامن/غير المتزامن، والنسخ المتماثل مع الاتساق القوي/المتوقع، والنسخ المتماثل القائد-التابع/المتابع اللامركزي. يؤثر اختيار وضع النسخ المتماثل على توافر النظام واتساقه. ولذلك، كما هو مقترح في نظرية CAP الشهيرة، يحتاج مهندس النظام إلى المفاضلة بين الاتساق والتوافر عندما يكون تقسيم الشبكة أمرًا حتميًا.
الاتساق
باختصار، يشير الاتساق في قاعدة البيانات الموزعة إلى الخاصية التي تضمن أن كل عقدة أو نسخة متماثلة لديها نفس طريقة عرض البيانات عند كتابة أو قراءة البيانات في وقت معين. للحصول على قائمة كاملة بمستويات الاتساق، اقرأ المستند هنا.
للتوضيح، نحن هنا نتحدث عن الاتساق كما في نظرية CAP، وليس ACID (الذرية، والاتساق، والعزل، والمتانة). يشير الاتساق في نظرية CAP إلى أن كل عقدة في النظام لديها نفس البيانات بينما يشير الاتساق في ACID إلى عقدة واحدة تطبق نفس القواعد على كل التزام محتمل.
بشكل عام، تتطلب قواعد بيانات OLTP (معالجة المعاملات عبر الإنترنت) اتساقًا قويًا أو قابلية الخطية لضمان ذلك:
- يمكن لكل قراءة الوصول إلى أحدث البيانات المدرجة.
- إذا تم إرجاع قيمة جديدة بعد القراءة، يجب على جميع القراءات التالية، بغض النظر عن نفس العملاء أو عملاء مختلفين، إرجاع القيمة الجديدة.
يتمثل جوهر قابلية الخطية في ضمان تكرار نسخ البيانات المتعددة - بمجرد كتابة أو قراءة قيمة جديدة، يمكن لجميع القراءات اللاحقة عرض القيمة الجديدة حتى يتم الكتابة فوق القيمة لاحقًا. يمكن للنظام الموزّع الذي يوفر قابلية الخطية أن يوفر على المستخدمين عناء مراقبة النسخ المتماثلة المتعددة، ويمكن أن يضمن التذرّر والترتيب أو كل عملية.
الإجماع
يتم إدخال مفهوم الإجماع إلى الأنظمة الموزعة حيث يتوق المستخدمون إلى رؤية الأنظمة الموزعة تعمل بنفس الطريقة التي تعمل بها الأنظمة المستقلة.
لتبسيط الأمر، الإجماع هو اتفاق عام على القيمة. على سبيل المثال، أراد ستيف وفرانك تناول شيء ما لتناول الطعام. اقترح ستيف تناول الشطائر. وافق فرانك على اقتراح ستيف وتناول كلاهما السندويشات. لقد توصلا إلى توافق في الآراء. بشكل أكثر تحديداً، القيمة (السندويشات) التي اقترحها أحدهما وافق عليها كلاهما، واتخذ كلاهما إجراءات بناءً على القيمة. وبالمثل، يعني الإجماع في النظام الموزع أنه عندما تقترح عملية ما قيمة ما، فإن جميع العمليات الأخرى في النظام تتفق على هذه القيمة وتتصرف بناءً عليها.
الإجماع
النسخ المتماثل القائم على الإجماع
تم اقتراح أقدم الخوارزميات المستندة إلى الإجماع إلى جانب النسخ المتماثل المختوم بالعرض في عام 1988. في عام 1989، اقترح ليزلي لامبورت خوارزمية Paxos، وهي خوارزمية قائمة على الإجماع.
وفي السنوات الأخيرة، شهدنا في السنوات الأخيرة خوارزمية أخرى سائدة في الصناعة قائمة على الإجماع، وهي خوارزمية Raft. وقد تم تبنيها من قبل العديد من قواعد بيانات NewSQL السائدة مثل CockroachDB وTiDB وOceanBase وغيرها.
وتجدر الإشارة إلى أن النظام الموزع لا يدعم بالضرورة قابلية التخصيص الخطي حتى لو كان يعتمد النسخ المتماثل القائم على الإجماع. ومع ذلك، فإن القابلية الخطية هي الشرط الأساسي لبناء قاعدة بيانات موزعة ACID.
عند تصميم نظام قاعدة البيانات، يجب أن يؤخذ في الاعتبار ترتيب التزام السجلات وآلات الحالة. هناك حاجة أيضًا إلى توخي مزيد من الحذر للحفاظ على إيجار القائد لـ Paxos أو Raft ومنع انقسام الدماغ في ظل تقسيم الشبكة.
آلة حالة النسخ المتماثل لـ Raft
الإيجابيات والسلبيات
في الواقع، يعد كل من Raft و ZAB وبروتوكول السجل القائم على النصاب في Aurora كلها أشكال مختلفة من Paxos. للنسخ المتماثل القائم على الإجماع المزايا التالية:
- على الرغم من أن النسخ المتماثل القائم على الإجماع يركز أكثر على الاتساق وتقسيم الشبكة في نظرية CAP، إلا أنه يوفر توافرًا أفضل نسبيًا مقارنةً بالنسخ المتماثل التقليدي القائم على القائد والتابع.
- يعد Raft إنجازًا كبيرًا في تبسيط الخوارزميات القائمة على الإجماع إلى حد كبير. ويوجد العديد من مكتبات Raft مفتوحة المصدر على GitHub (على سبيل المثال: Sofa-jraft).
- يمكن لأداء النسخ المتماثل القائم على الإجماع أن يرضي معظم التطبيقات والشركات. مع تغطية محركات أقراص SSD عالية الأداء و بطاقات واجهة الشبكة (بطاقة واجهة الشبكة) ذات الأداء العالي، يتم تخفيف عبء مزامنة النسخ المتماثلة المتعددة، مما يجعل خوارزميات Paxos و Raft هي السائدة في الصناعة.
يتمثل أحد المفاهيم الخاطئة في أن النسخ المتماثل القائم على الإجماع هو الحل السحري لتحقيق اتساق البيانات في قاعدة البيانات الموزعة. ومع ذلك، هذه ليست الحقيقة. فالتحديات في التوافر والتعقيد والأداء التي تواجهها الخوارزمية القائمة على الإجماع تمنعها من أن تكون الحل الأمثل.
التوافر المعرض للخطر تعتمد خوارزمية باكسوس أو خوارزمية الطوافة المحسّنة اعتمادًا قويًا على النسخة المتماثلة القائدة، والتي تأتي مع قدرة ضعيفة على مكافحة الفشل الرمادي. في النسخ المتماثل القائم على الإجماع، لن يتم إجراء انتخاب جديد للنسخة المتماثلة القائدة حتى لا تستجيب العقدة القائدة لفترة طويلة. ولذلك، فإن النسخ المتماثل القائم على الإجماع غير قادر على التعامل مع الحالات التي تكون فيها العقدة القائدة بطيئة أو يحدث فيها تعطل.
التعقيد العالي على الرغم من وجود العديد من الخوارزميات الموسعة القائمة على Paxos وRaft، إلا أن ظهور Multi-Raft وRaft المتوازية يتطلب المزيد من الاعتبارات والاختبارات على المزامنة بين السجلات وآلات الحالة.
الأداء الضعيف في عصر السحابة الأصلية، يتم استبدال التخزين المحلي بحلول تخزين مشتركة مثل EBS و S3 لضمان موثوقية البيانات واتساقها. ونتيجة لذلك، لم يعد النسخ المتماثل القائم على الإجماع ضرورياً للأنظمة الموزعة. والأكثر من ذلك، فإن النسخ المتماثل القائم على الإجماع يأتي مع مشكلة تكرار البيانات حيث أن كلاً من الحل و EBS لديه نسخ متماثلة متعددة.
بالنسبة للنسخ المتماثل متعدد مراكز البيانات والسحابة المتعددة، فإن السعي لتحقيق الاتساق لا يضر بالتوافر فحسب، بل أيضًا بوقت الاستجابة، مما يؤدي إلى انخفاض في الأداء. ولذلك، فإن قابلية النسخ الخطي ليست ضرورية لتحمل الكوارث متعددة مراكز البيانات في معظم التطبيقات.
استراتيجية تكرار السجل لقاعدة البيانات السحابية الأصلية والموزعة
لا يمكن إنكار أن الخوارزميات القائمة على الإجماع مثل Raft وPaxos لا تزال هي الخوارزميات السائدة التي تعتمدها العديد من قواعد بيانات OLTP. ومع ذلك، من خلال مراقبة أمثلة بروتوكول PacificA وSocrates وRockset، يمكننا أن نرى أن الاتجاه آخذ في التحول.
هناك مبدآن رئيسيان للحل الذي يمكن أن يخدم قاعدة البيانات السحابية الموزعة على أفضل وجه.
1. النسخ المتماثل كخدمة
هناك حاجة إلى خدمة صغيرة منفصلة مخصصة لمزامنة البيانات. يجب ألا تكون وحدة المزامنة ووحدة التخزين مقترنة بإحكام داخل نفس العملية.
على سبيل المثال، يفصل سقراط بين التخزين والسجل والحوسبة. هناك خدمة سجل واحدة مخصصة (خدمة XLog في منتصف الشكل أدناه).
بنية سقراط
خدمة XLog هي خدمة فردية. يتم تحقيق ثبات البيانات بمساعدة التخزين منخفض الكمون. تتولى منطقة الهبوط في سقراط مسؤولية الاحتفاظ بثلاث نسخ متماثلة بسرعة متسارعة.
خدمة سقراط XLog
توزع العقدة القائدة السجلات على وسيط السجل بشكل غير متزامن، وتقوم بمسح البيانات إلى Xstore. يمكن لذاكرة التخزين المؤقت SSD المحلية تسريع قراءة البيانات. بمجرد نجاح تدفق البيانات، يمكن تنظيف المخازن المؤقتة في منطقة الهبوط. من الواضح أن جميع بيانات السجل مقسمة إلى ثلاث طبقات - منطقة الهبوط، و SSD المحلي، و XStore.
2. مبدأ الدمية الروسية
تتمثل إحدى طرق تصميم النظام في اتباع مبدأ الدمية الروسية: كل طبقة كاملة ومناسبة تمامًا لما تقوم به الطبقة بحيث يمكن بناء طبقات أخرى فوقها أو حولها.
عند تصميم قاعدة بيانات سحابية أصلية، نحتاج إلى الاستفادة بذكاء من خدمات الطرف الثالث الأخرى لتقليل تعقيد بنية النظام.
يبدو أنه لا يمكننا الالتفاف حول باكسوس لتجنب فشل نقطة واحدة. ومع ذلك، لا يزال بإمكاننا تبسيط النسخ المتماثل للسجل إلى حد كبير من خلال تسليم انتخاب القائد إلى خدمات Raft أو Paxos القائمة على Chubby و Zk و etcd.
على سبيل المثال، تتبع بنية Rockset مبدأ الدمية الروسية وتستخدم Kafka/Kineses للسجلات الموزعة، و S3 للتخزين، وذاكرة SSD المحلية للتخزين المؤقت لتحسين أداء الاستعلام.
بنية Rockset
نهج ميلفوس
يشبه الاتساق القابل للضبط في Milvus في الواقع قراءات المتابعين في النسخ المتماثل القائم على الإجماع. تشير ميزة قراءة المتابعين إلى استخدام النسخ المتماثلة للتابعين للقيام بمهام قراءة البيانات في ظل فرضية الاتساق القوي. والغرض من ذلك هو تعزيز إنتاجية المجموعة وتقليل الحمل على القائد. تتمثل الآلية الكامنة وراء ميزة قراءة المتابعين في الاستعلام عن فهرس الالتزام لأحدث سجل وتوفير خدمة الاستعلام حتى يتم تطبيق جميع البيانات الموجودة في فهرس الالتزام على أجهزة الحالة.
ومع ذلك، فإن تصميم Milvus لم يعتمد استراتيجية التابع. بمعنى آخر، لا يستفسر Milvus عن فهرس الالتزام في كل مرة يتلقى فيها طلب استعلام. بدلاً من ذلك، يتبنى Milvus آلية مثل العلامة المائية في Flink، والتي تخطر عقدة الاستعلام بموقع فهرس الالتزام في فترة منتظمة. والسبب في مثل هذه الآلية هو أن مستخدمي Milvus عادةً لا يطلبون بشكل كبير اتساق البيانات، ويمكنهم قبول حل وسط في رؤية البيانات من أجل أداء أفضل للنظام.
بالإضافة إلى ذلك، يعتمد Milvus أيضًا على خدمات مصغرة متعددة ويفصل التخزين عن الحوسبة. في بنية Milvus، يتم استخدام S3 و MinIo و Azure Blob للتخزين.
بنية ميلفوس
ملخص
في الوقت الحاضر، يعمل عدد متزايد من قواعد البيانات السحابية الأصلية على جعل النسخ المتماثل للسجل خدمة فردية. من خلال القيام بذلك، يمكن تقليل تكلفة إضافة النسخ المتماثلة للقراءة فقط والنسخ المتماثل غير المتجانس. يتيح استخدام الخدمات المصغرة المتعددة الاستفادة السريعة من البنية التحتية الناضجة القائمة على السحابة، وهو أمر مستحيل بالنسبة لقواعد البيانات التقليدية. يمكن أن تعتمد خدمة السجل الفردي على النسخ المتماثل القائم على الإجماع، ولكن يمكنها أيضاً اتباع استراتيجية الدمية الروسية لاعتماد بروتوكولات اتساق مختلفة مع Paxos أو Raft لتحقيق قابلية النسخ الخطي.
المراجع
- Lamport L. Paxos أصبح بسيطًا[J]. أخبار ACM SIGACT News (عمود الحوسبة الموزعة) 32، 4 (العدد 121 الكامل، ديسمبر 2001)، 2001: 51-58.
- أونجارو د، أوسترهوت ج. بحثًا عن خوارزمية إجماع مفهومة[C]/ المؤتمر التقني السنوي USENIX 2014 (Usenix ATC 14). 2014: 305-319.
- أوكي ب م، ليسكوف ب هـ. النسخ المتماثل المختوم بالعرض: طريقة نسخ أولية جديدة لدعم الأنظمة الموزعة عالية التوفر [C]/ وقائع الندوة السنوية السابعة لـ ACM السنوية حول مبادئ الحوسبة الموزعة. 1988: 8-17.
- Lin W, Yang M, Zhang L, et al. PacificA: النسخ المتماثل في أنظمة التخزين الموزعة القائمة على السجل[J]. 2008.
- Verbitski A, Gupta A, Saha D, et al. Amazon aurora: حول تجنب الإجماع الموزع لـ i/os، والالتزامات، وتغييرات العضوية[C]/ وقائع المؤتمر الدولي لإدارة البيانات 2018. 2018: 789-796.
- Antonopoulos P, Budovski A, Diaconu C, et al. Socrates: خادم sql الجديد في السحابة[C]/ وقائع المؤتمر الدولي لإدارة البيانات لعام 2019. 2019: 1743-1756.
- فهم النسخ المتماثل والاتساق والإجماع
- النسخ المتماثل القائم على الإجماع
- استراتيجية تكرار السجل لقاعدة البيانات السحابية الأصلية والموزعة
- ملخص
- المراجع
On This Page
Try Managed Milvus for Free
Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.
Get StartedLike the article? Spread the word