مقابلة مصغرة مع Oleg Anastasyev: التسامح مع الخطأ في Apache Cassandra

مقابلة مصغرة مع Oleg Anastasyev: التسامح مع الخطأ في Apache Cassandra

Odnoklassniki هو أكبر مستخدم لـ Apache Cassandra على RuNet وواحد من أكبر المستخدمين في العالم. لقد بدأنا باستخدام Cassandra في عام 2010 لتخزين تقييمات الصور، والآن تدير Cassandra بيتابايت من البيانات على آلاف العقد، وفي الواقع، قمنا بتطوير نظامنا الخاص قاعدة بيانات المعاملات NewSQL.
سنعقد يوم 12 سبتمبر في مكتبنا في سانت بطرسبرغ اللقاء الثاني مخصص لأباتشي كاساندرا. سيكون المتحدث الرئيسي للحدث هو كبير المهندسين في Odnoklassniki Oleg Anastasyev. أوليغ هو خبير في مجال الأنظمة الموزعة والمتسامحة مع الأخطاء، ويعمل مع كاساندرا منذ أكثر من 10 سنوات وبشكل متكرر تحدث عن ميزات استخدام هذا المنتج في المؤتمرات.

عشية الاجتماع، تحدثنا مع أوليغ حول التسامح مع الأخطاء للأنظمة الموزعة مع كاساندرا، وسألناه عما سيتحدث عنه في الاجتماع ولماذا يستحق حضور هذا الحدث.

بدأ أوليغ مسيرته في مجال البرمجة في عام 1995. قام بتطوير البرمجيات في مجال الخدمات المصرفية والاتصالات والنقل. لقد كان يعمل كمطور رائد في Odnoklassniki منذ عام 2007 في فريق المنصة. تشمل مسؤولياته تطوير البنى والحلول للأنظمة عالية التحميل ومستودعات البيانات الكبيرة وحل مشكلات أداء البوابة وموثوقيتها. كما يقوم بتدريب المطورين داخل الشركة.

- أوليغ، مرحبا! في مايو حدث اللقاء الأول، المخصصة لأباتشي كاساندرا، يقول المشاركون أن المناقشات استمرت حتى وقت متأخر من الليل، من فضلك أخبرني، ما هي انطباعاتك عن اللقاء الأول؟

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

لقد كنت مهتمًا وأعجبني حقًا.

- انطلاقا من هذا الإعلان، اللقاء الثاني سيتم تخصيصه بالكامل للتسامح مع الخطأ، لماذا اخترت هذا الموضوع؟

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

— عندما يتعلق الأمر بكاساندرا، ماذا تقصد بالتسامح مع الخطأ؟

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

- هل يمكنك إعطاء مثال على مجموعة البيانات الأكثر تحميلا والأكبر؟

إحدى أكبر مجموعاتنا هي مجموعة الهدايا: أكثر من 200 عقدة ومئات التيرابايت من البيانات. لكنها ليست الأكثر تحميلًا، لأنها مغطاة بذاكرة تخزين مؤقت موزعة. تتعامل مجموعاتنا الأكثر ازدحامًا مع عشرات الآلاف من RPS للكتابة وآلاف من RPS للقراءة.

- رائع! كم مرة ينكسر شيء ما؟

نعم في كل وقت! في المجموع، لدينا أكثر من 6 آلاف خادم، ويتم استبدال اثنين من الخوادم وعشرات الأقراص كل أسبوع (دون مراعاة العمليات الموازية لترقية وتوسيع أسطول الآلات). بالنسبة لكل نوع من أنواع الفشل، توجد تعليمات واضحة حول ما يجب فعله وبأي ترتيب، ويتم تشغيل كل شيء تلقائيًا كلما أمكن ذلك، لذا فإن حالات الفشل تكون روتينية وفي 99٪ من الحالات تحدث دون أن يلاحظها أحد من قبل المستخدمين.

– كيف تتعامل مع مثل هذا الرفض؟

منذ بداية تشغيل كاساندرا والحوادث الأولى، عملنا على آليات النسخ الاحتياطي والاسترداد منها، وقمنا ببناء إجراءات النشر التي تأخذ في الاعتبار حالة مجموعات كاساندرا، وعلى سبيل المثال، لا تسمح بإعادة تشغيل العقد إذا كان فقدان البيانات ممكنا. نحن نخطط للحديث عن كل هذا في اللقاء.

– كما قلت، لا توجد أنظمة موثوقة تماما. ما هي أنواع الإخفاقات التي تستعد لها وتستطيع التعامل معها؟

إذا تحدثنا عن تركيباتنا لمجموعات Cassandra، فلن يلاحظ المستخدمون أي شيء إذا فقدنا عدة أجهزة في وحدة تحكم واحدة أو وحدة تحكم واحدة كاملة (وهذا ما حدث). مع زيادة عدد مراكز البيانات، نفكر في البدء في ضمان قابلية التشغيل في حالة فشل اثنين من مراكز البيانات.

- ما الذي تعتقد أن كاساندرا تفتقر إليه فيما يتعلق بالتسامح مع الخطأ؟

تتطلب Cassandra، مثل العديد من متاجر NoSQL المبكرة الأخرى، فهمًا عميقًا لبنيتها الداخلية والعمليات الديناميكية التي تحدث. أود أن أقول إنه يفتقر إلى البساطة والقدرة على التنبؤ وإمكانية الملاحظة. ولكن سيكون من المثير للاهتمام سماع آراء المشاركين الآخرين في الاجتماع!

أوليغ، شكرًا جزيلاً لك على الوقت الذي أمضيته في الإجابة على الأسئلة!

نحن في انتظار كل من يريد التواصل مع الخبراء في مجال تشغيل أباتشي كاساندرا في اللقاء يوم 12 سبتمبر في مكتبنا في سانت بطرسبرغ.

تعال، سيكون الأمر مثيرا للاهتمام!

سجل لهذا الحدث.

المصدر: www.habr.com

إضافة تعليق