Car-tech

Το YouTube κλιμακώνει το MySQL με κωδικό Go

Introduction to Amazon Web Services by Leo Zhadanovsky

Introduction to Amazon Web Services by Leo Zhadanovsky
Anonim

Οι μηχανικοί του YouTube αναπτύσσουν ένα σύνολο λογισμικού, το οποίο ονομάζεται Vitess, το οποίο θα βοηθήσει τις βάσεις δεδομένων MySQL ανοιχτού κώδικα να λειτουργούν πιο αποτελεσματικά σε πολύ μεγάλης κλίμακας περιβάλλοντα παραγωγής. Για να γράψετε τον κώδικα, χρησιμοποιούν τη γλώσσα προγραμματισμού Go της Google.

Το YouTube χρησιμοποιεί ήδη ένα στοιχείο Vitess, το οποίο ονομάζεται Vtocc, για να βοηθήσει την προβολή βίντεο σε όλους τους 800 εκατομμύρια χρήστες μηνιαίων χρηστών. Το Google απέκτησε το YouTube το 2006.

Το Vtocc "ήταν πολύ σταθερό και διαθέτει όλα τα απαραίτητα εργαλεία για να το χρησιμοποιήσετε σε ένα περιβάλλον παραγωγής", δήλωσε ο αρχιτέκτονας του YouTube Sugu Sougoumarane, ο οποίος μαζί με τον μηχανικό YouTube Mike Solomon συζήτησαν τη Vitess στο συνέδριο Usenix LISA που πραγματοποιήθηκε αυτή την εβδομάδα στο Σαν Ντιέγκο

Το Vitess που γράφτηκε στο Go μπορεί να βοηθήσει στην επικύρωση της ιδέας ότι αυτή η σχετικά νέα γλώσσα προγραμματισμού θα μπορούσε να χρησιμοποιηθεί σε μεγάλης κλίμακας περιβάλλοντα παραγωγής. Η Google εισήγαγε την έκδοση 1 του Go τον Μάρτιο.

Το YouTube εξυπηρετεί περισσότερο από 4 δισεκατομμύρια ώρες βίντεο κάθε μήνα. Περίπου 72 ώρες βίντεο μεταφορτώνονται στην υπηρεσία κάθε λεπτό. Ενώ το YouTube αποθηκεύει όλα τα βίντεό του απευθείας σε ένα σύστημα αρχείων, χρησιμοποιεί το MySQL για να αποθηκεύσει όλα τα μεταδεδομένα που απαιτούνται για την προβολή κάθε βίντεο, όπως οι προτιμήσεις των χρηστών, οι διαφημιστικές πληροφορίες, οι προσαρμογές χωρών και άλλα απαραίτητα κομμάτια πληροφοριών. για την αξιοπιστία του, δήλωσε ο Σολωμόν, ένας από τους μηχανικούς που αρχικά δημιούργησε την υπηρεσία. Έχει ιδιορρυθμίες, αλλά αυτές οι ιδιορρυθμίες είναι γνωστές και μπορούν να μετριαστούν αρκετά εύκολα, είπε. Ωστόσο, η MySQL έχει επίσης προβλήματα με την κλιμάκωση - τουλάχιστον κλιμάκωση για να φιλοξενήσει μια υπηρεσία τόσο μεγάλη όσο το YouTube.

"Το κύριο πρόβλημα με τη MySQL είναι ότι μόλις φτάσετε σε ένα συγκεκριμένο σημείο χρήσης, περνάτε πολλά τη διαχείριση του υλικού στο χρόνο και πόσες περιπτώσεις έχετε ", ανέφερε ο Σολωμόμ. "Θέλουμε να αυτοματοποιήσουμε αυτό το κομμάτι, θέλουμε να κάνουμε κάθε περίπλοκη ενέργεια και επιρρεπή σε σφάλματα και να την θεραπεύσουμε".

Η MySQL επίσης δεν είναι πολύ αποδοτική όταν χρησιμοποιείται σε μεγάλη ανάπτυξη. Συνήθως, κάθε σύνδεση με την MySQL απαιτεί το δικό της νήμα στο διακομιστή. Ωστόσο, αυτή η προσέγγιση δεν είναι εφικτή στην κλίμακα των λειτουργιών του YouTube. "Η εκτέλεση δεκάδων χιλιάδων συνδέσεων δεν είναι πραγματικά βιώσιμη", δήλωσε ο Solomon.

Οι μηχανικοί της εταιρείας, ωστόσο, ήταν απρόθυμοι να προσπαθήσουν να αλλάξουν τον ίδιο τον βασικό κώδικα MySQL, σημειώνοντας ότι οι αλλαγές στο περίπλοκο και κάπως δύσκολο να - ο κώδικας κατανόησης μπορεί συχνά να έχει ως αποτέλεσμα απρόβλεπτα αποτελέσματα. "Δεν είναι απλό, όταν νομίζετε ότι ξέρετε τι κάνετε, τότε αρχίζετε να αντιμετωπίζετε προβλήματα", δήλωσε ο Solomon.

Έτσι η Vitess δημιουργήθηκε για να τρέξει σε συνδυασμό με την MySQL για να προσφέρει πρόσθετες δυνατότητες διαχείρισης. Το στοιχείο Vtocc, για παράδειγμα, ενοποιεί χιλιάδες εισερχόμενων ερωτημάτων SQL σε μικρότερο αριθμό παρτίδων, ώστε η MySQL να μπορεί να πάρει λιγότερους πόρους που να ικανοποιούν αυτά τα αιτήματα. Το Vtocc αναλύει επίσης ερωτήματα έτσι ώστε να μπορεί να εκτελεστεί αποτελεσματικότερα και μειώνει την εργασία που προκαλείται από τα διπλότυπα ερωτήματα, επαναλαμβάνοντας τα αποτελέσματα ενός ερωτήματος για να ικανοποιήσει τα άλλα πανομοιότυπα αιτήματα.

Η χρήση του Go επέτρεψε στους προγραμματιστές του YouTube να είναι πιο παραγωγικοί από ό, έχουν χρησιμοποιήσει μια πιο παραδοσιακή γλώσσα, δήλωσε ο Σούγκουμαραν.

Ο κωδικός Go σύνταξε γρήγορα, είπε. Οι 30.000 γραμμές κώδικα στο Vitess μπορούν να μεταγλωττιστούν σε δυαδικά αρχεία σε περίπου 30 δευτερόλεπτα. Και, χάρη σε ένα πλούσιο σύνολο βιβλιοθηκών, πολλές εργασίες δεν απαιτούν πολύ προγραμματισμό. Για παράδειγμα, ο Sougoumarane έγραψε μια ρουτίνα 105 γραμμών που περιοδικά περιοδικά αρχεία καταγραφής, λειτουργικότητα που δεν θα μπορούσε να γραφτεί σε λίγες γραμμές χρησιμοποιώντας C ή C ++.

Ο Solomon δήλωσε ότι με την πάροδο του χρόνου η Vitess θα αναλάβει πρόσθετα καθήκοντα, όπως η αναπαραγωγή βάσεων δεδομένων και η αυτόματη αποκόλληση, έτσι ώστε μια βάση δεδομένων να αναπτυχθεί σε πολλούς διακομιστές χωρίς παρεμβάσεις από διαχειριστές.

Ο Joab Jackson καλύπτει επιχειρηματικό λογισμικό και γενικές τεχνολογικές εξελίξεις για το

Η υπηρεσία ειδήσεων IDG

. Ακολουθήστε τον Joab στο Twitter στο @Joab_Jackson. Η διεύθυνση ηλεκτρονικού ταχυδρομείου του Joab είναι [email protected]