Η Odnoklassniki είναι ο μεγαλύτερος χρήστης του Apache Cassandra στο RuNet και ένας από τους μεγαλύτερους στον κόσμο. Ξεκινήσαμε να χρησιμοποιούμε την Cassandra το 2010 για να αποθηκεύουμε αξιολογήσεις φωτογραφιών και τώρα η Cassandra διαχειρίζεται petabytes δεδομένων σε χιλιάδες κόμβους, στην πραγματικότητα, αναπτύξαμε ακόμη και τους δικούς μας
Στις 12 Σεπτεμβρίου στο γραφείο μας στην Αγία Πετρούπολη θα πραγματοποιήσουμε
Την παραμονή της συνάντησης, μιλήσαμε με τον Oleg για την ανοχή σφαλμάτων των κατανεμημένων συστημάτων με την Cassandra, ρωτήσαμε για τι θα μιλούσε στη συνάντηση και γιατί άξιζε να παρακολουθήσετε αυτήν την εκδήλωση.
Ο Oleg ξεκίνησε την καριέρα του στον προγραμματισμό το 1995. Ανέπτυξε λογισμικό στον τραπεζικό τομέα, τις τηλεπικοινωνίες και τις μεταφορές. Εργάζεται ως κορυφαίος προγραμματιστής στην Odnoklassniki από το 2007 στην ομάδα της πλατφόρμας. Οι αρμοδιότητές του περιλαμβάνουν την ανάπτυξη αρχιτεκτονικών και λύσεων για συστήματα υψηλού φορτίου, μεγάλες αποθήκες δεδομένων και επίλυση προβλημάτων απόδοσης και αξιοπιστίας πύλης. Εκπαιδεύει επίσης προγραμματιστές εντός της εταιρείας.
- Όλεγκ, γεια! Τον Μάιο έγινε
Προγραμματιστές με διαφορετικό υπόβαθρο από διαφορετικές εταιρείες ήρθαν με τον δικό τους πόνο, απροσδόκητες λύσεις σε προβλήματα και εκπληκτικές ιστορίες. Καταφέραμε να διεξαγάγουμε το μεγαλύτερο μέρος της συνάντησης σε μορφή συζήτησης, αλλά υπήρχαν τόσες πολλές συζητήσεις που μπορέσαμε να αγγίξουμε μόνο το ένα τρίτο των προγραμματισμένων θεμάτων. Δώσαμε μεγάλη προσοχή στο πώς και τι παρακολουθούμε χρησιμοποιώντας το παράδειγμα των πραγματικών υπηρεσιών παραγωγής μας.
Με ενδιέφερε και μου άρεσε πολύ.
- Κρίνοντας από την ανακοίνωση,
Το Cassandra είναι ένα τυπικό πολυάσχολο κατανεμημένο σύστημα με τεράστιο όγκο λειτουργιών πέρα από την άμεση εξυπηρέτηση των αιτημάτων των χρηστών: κουτσομπολιά, ανίχνευση αποτυχίας, διάδοση αλλαγών σχήματος, επέκταση/μείωση συμπλέγματος, αντιεντροπία, δημιουργία αντιγράφων ασφαλείας και ανάκτηση κ.λπ. Όπως σε κάθε κατανεμημένο σύστημα, καθώς αυξάνεται η ποσότητα του υλικού, αυξάνεται η πιθανότητα αστοχιών, έτσι η λειτουργία των συστάδων παραγωγής Cassandra απαιτεί βαθιά κατανόηση της δομής του για την πρόβλεψη της συμπεριφοράς σε περίπτωση αστοχιών και των ενεργειών του χειριστή. Αφού χρησιμοποιήσαμε την Κασσάνδρα για πολλά χρόνια, εμείς
— Όσον αφορά την Κασσάνδρα, τι εννοείς ανοχή σφαλμάτων;
Πρώτα απ 'όλα, φυσικά, η ικανότητα του συστήματος να επιβιώνει τυπικές αστοχίες υλικού: απώλεια μηχανών, δίσκων ή συνδεσιμότητα δικτύου με κόμβους/κέντρα δεδομένων. Αλλά το ίδιο το θέμα είναι πολύ ευρύτερο και περιλαμβάνει συγκεκριμένα την αποκατάσταση από βλάβες, συμπεριλαμβανομένων των αστοχιών για τις οποίες οι άνθρωποι σπάνια προετοιμάζονται, για παράδειγμα, σφάλματα χειριστή.
— Μπορείτε να δώσετε ένα παράδειγμα του πιο φορτωμένου και μεγαλύτερου συμπλέγματος δεδομένων;
Ένα από τα μεγαλύτερα cluster μας είναι το gift cluster: περισσότεροι από 200 κόμβοι και εκατοντάδες TB δεδομένων. Αλλά δεν είναι το πιο φορτωμένο, αφού καλύπτεται από μια κατανεμημένη κρυφή μνήμη. Τα πιο πολυσύχναστα cluster μας χειρίζονται δεκάδες χιλιάδες RPS για γραφή και χιλιάδες RPS για ανάγνωση.
- Ουάου! Πόσο συχνά σπάει κάτι;
— Πώς αντιμετωπίζετε τέτοιες αρνήσεις;
Από την αρχή της λειτουργίας της Κασσάνδρας και τα πρώτα περιστατικά, δουλέψαμε στους μηχανισμούς δημιουργίας αντιγράφων ασφαλείας και ανάκτησης από αυτά, δημιουργήσαμε διαδικασίες ανάπτυξης που λαμβάνουν υπόψη την κατάσταση των συμπλεγμάτων Κασσάνδρα και, για παράδειγμα, δεν επιτρέπουν την επανεκκίνηση των κόμβων. εάν είναι δυνατή η απώλεια δεδομένων. Σκοπεύουμε να μιλήσουμε για όλα αυτά στη συνάντηση.
— Όπως είπατε, δεν υπάρχουν απολύτως αξιόπιστα συστήματα. Για ποιους τύπους αποτυχιών προετοιμάζεστε και είστε σε θέση να επιβιώσετε;
Εάν μιλάμε για τις εγκαταστάσεις μας των συστάδων Cassandra, οι χρήστες δεν θα παρατηρήσουν τίποτα εάν χάσουμε πολλά μηχανήματα σε ένα DC ή σε ένα ολόκληρο DC (αυτό έχει συμβεί). Με την αύξηση του αριθμού των DC, σκεφτόμαστε να αρχίσουμε να διασφαλίζουμε τη λειτουργικότητα σε περίπτωση βλάβης δύο DC.
— Τι πιστεύετε ότι λείπει από την Κασσάνδρα όσον αφορά την ανοχή σφαλμάτων;
Η Cassandra, όπως και πολλά άλλα πρώιμα καταστήματα NoSQL, απαιτεί βαθιά κατανόηση της εσωτερικής της δομής και των δυναμικών διεργασιών που συμβαίνουν. Θα έλεγα ότι του λείπει η απλότητα, η προβλεψιμότητα και η παρατηρησιμότητα. Αλλά θα είναι ενδιαφέρον να ακούσουμε τις απόψεις άλλων συμμετεχόντων στη συνάντηση!
Oleg, ευχαριστώ πολύ για τον χρόνο που διαθέσατε για να απαντήσετε στις ερωτήσεις!
Περιμένουμε όλους όσους θέλουν να επικοινωνήσουν με ειδικούς στον τομέα λειτουργίας Apache Cassandra στο meetup στις 12 Σεπτεμβρίου στο γραφείο μας στην Αγία Πετρούπολη.
Ελάτε, θα έχει ενδιαφέρον!