Car-tech

يوتيوب يقيس MySQL برمز Go

Ruby on Rails by Leila Hofer

Ruby on Rails by Leila Hofer
Anonim

يطور مهندسو YouTube مجموعة من البرامج ، تسمى Vitess ، والتي ستساعد قواعد بيانات MySQL مفتوحة المصدر على العمل بكفاءة أكبر في بيئات الإنتاج الكبيرة جدًا. لكتابة التعليمة البرمجية ، فإنها تستخدم لغة برمجة Go Go.

يستخدم YouTube بالفعل مكونًا واحدًا من Vitess ، يُسمى Vtocc ، للمساعدة في خدمة مقاطع الفيديو لجميع مستخدمي الخدمة الذين يبلغ عددهم 800 مليون مستخدم شهريًا. اكتسبت جوجل يوتيوب في عام 2006.

Vtocc "كانت ثابتة جدا ، ولديها كل الأدوات اللازمة لك لاستخدامها في بيئة الإنتاج" ، قال المهندس المعماري في يوتيوب سوقو سوجوماران ، الذي ، إلى جانب مهندس YouTube مايك سولومون ، ناقش Vitess في مؤتمر Uselli LISA (إدارة نظام التثبيت الكبير) ، الذي عُقد هذا الأسبوع في سان دييجو.

إن Vitess مكتوبًا في Go يمكن أن يساعد في التحقق من صحة فكرة أنه يمكن استخدام لغة البرمجة الجديدة نسبيًا في بيئات الإنتاج على نطاق واسع. قدمت Google الإصدار 1 من Go في شهر آذار.

يعرض YouTube أكثر من 4 مليارات ساعة من الفيديو كل شهر. يتم تحميل حوالي 72 ساعة من الفيديو إلى الخدمة كل دقيقة. بينما يخزن YouTube جميع ملفات الفيديو الخاصة به مباشرة على نظام ملفات ، فإنه يستخدم MySQL لتخزين كل البيانات الوصفية اللازمة لخدمة كل فيديو ، مثل تفضيلات المستخدم ، ومعلومات الإعلان ، وتخصيصات البلد وغيرها من أجزاء المعلومات الضرورية.

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

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

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

<> <> <> <> <> لقد كان مهندسو الشركة مترددين في محاولة تغيير شفرة MySQL الأساسية نفسها ، مشيرين إلى إجراء تغييرات على المعقد وصعوبة بعض الشيء. قد يؤدي رمز التفاهم في كثير من الأحيان إلى تأثيرات غير متوقعة. وقال سولومون: "الأمر ليس سهلاً. فقط عندما تعتقد أنك تعرف ما تفعله ، فعندما تبدأ في المشاكل" ، تم إنشاء "فيتيس" ليعمل بالتزامن مع MySQL لتقديم إمكانات إدارية إضافية. يقوم مكون Vtocc ، على سبيل المثال ، بدمج الآلاف من استعلامات SQL الواردة في عدد أقل من الدفعات بحيث يمكن أن تأخذ MySQL موارد أقل تحقق هذه الطلبات. يقوم Vtocc أيضًا بتوزيع الاستعلامات بحيث يمكن تنفيذها بشكل أكثر كفاءة ، ويقلل من العمل الناتج عن الاستعلامات المتكررة عن طريق إعادة استخدام النتائج من استعلام واحد لتلبية الطلبات المماثلة الأخرى.

استخدام Go يسمح لمطوري YouTube بأن يكونوا أكثر إنتاجية مما كانوا يفعلون لقد استخدم لغة أكثر تقليدية ، قال سوجوماران.

يجمع كود Go بسرعة ، كما قال. يمكن تجميع خطوط 30،000 رمز في Vitess في الثنائيات في حوالي 30 ثانية. وبفضل مجموعة غنية من المكتبات ، لا تتطلب الكثير من المهام الكثير من البرمجة. على سبيل المثال ، كتب Sougoumarane روتينًا مؤلفًا من 105 سطر يزيل ملفات السجلات بشكل دوري ، وهي وظيفة لم يكن من الممكن كتابتها بأسطر قليلة باستخدام C أو C ++.

"هذا هو مدى تعبير Go is" ، يقول Sougoumarane. "إن ميزات اللغة مدروسة جيدًا. فهي تساعدك على تأليف الأشياء بطريقة أكثر أناقة من اللغات التقليدية." كما أشاد Sougoumarane دعم Go's التزامن ، حيوي للاستخدام في معالجات متعددة النواة. وقال: "لا داعي للقلق بشأن إدارة الخيوط. اذهب إلى إدارتها لك"اللغة أيضا بعض السلبيات ، أيضا ، اعترف Sougoumarane. يمكن تحسين معالجة الأخطاء ، على سبيل المثال. يمكن استخدام الجدولة وجمع البيانات المهملة أيضًا.

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

يغطّي Joab Jackson برمجيات الشركات والتكنولوجيا العامة الأخبار العاجلة لـ

The IDG News Service

. اتبع Joab على تويتر علىJoab_Jackson. عنوان البريد الإلكتروني لـ Joab هو [email protected]