Το Cassandra έχει σχεδιαστεί για να χειρίζεται μεγάλα δεδομένα. Το κύριο χαρακτηριστικό της Cassandra είναι η αποθήκευση δεδομένων σε πολλούς κόμβους χωρίς κανένα σημείο αποτυχίας.
Ο λόγος για αυτό το είδος της αρχιτεκτονικής της Κασσάνδρας ήταν ότι η αποτυχία του υλικού μπορεί να συμβεί ανά πάσα στιγμή. Οποιοσδήποτε κόμβος μπορεί να είναι εκτός λειτουργίας. Σε περίπτωση αποτυχίας μπορούν να χρησιμοποιηθούν δεδομένα που είναι αποθηκευμένα σε άλλο κόμβο. Ως εκ τούτου, η Cassandra έχει σχεδιαστεί με την κατανεμημένη αρχιτεκτονική της.
Η Cassandra αποθηκεύει δεδομένα σε διαφορετικούς κόμβους με μια αρχιτεκτονική μόδας από ομότιμους κατανεμημένους.
Όλοι οι κόμβοι ανταλλάσσουν πληροφορίες μεταξύ τους χρησιμοποιώντας το πρωτόκολλο Gossip . Το κουτσομπολιό είναι ένα πρωτόκολλο στην Κασσάνδρα με το οποίο οι κόμβοι μπορούν να επικοινωνούν μεταξύ τους.
Σε αυτό το σεμινάριο, θα μάθετε-
- Συστατικά της Κασσάνδρας
- Αναπαραγωγή δεδομένων
- Εγγραφή λειτουργίας
- Διαβάστε τη λειτουργία
Συστατικά της Κασσάνδρας
Υπάρχουν τα ακόλουθα στοιχεία στην Κασσάνδρα.
- Κόμβος
Ο κόμβος είναι το μέρος όπου αποθηκεύονται τα δεδομένα. Είναι το βασικό συστατικό της Κασσάνδρας.
- Κέντρο δεδομένων
Μια συλλογή κόμβων ονομάζεται κέντρο δεδομένων. Πολλοί κόμβοι κατηγοριοποιούνται ως κέντρο δεδομένων.
- Σύμπλεγμα
Το σύμπλεγμα είναι η συλλογή πολλών κέντρων δεδομένων.
- Δέσμευση καταγραφής
Κάθε λειτουργία εγγραφής γράφεται στο Commit Log. Το αρχείο καταγραφής δεσμεύσεων χρησιμοποιείται για την ανάκτηση σφαλμάτων.
- Τραπέζι μνήμης
Μετά την εγγραφή δεδομένων στο Commit log, τα δεδομένα γράφονται στο Mem-table. Τα δεδομένα εγγράφονται προσωρινά στο Mem-table.
- SSTable
Όταν ο πίνακας μνήμης φτάσει σε ένα ορισμένο όριο, τα δεδομένα μεταφέρονται σε ένα αρχείο δίσκου SSTable.
Αναπαραγωγή δεδομένων
Καθώς μπορεί να προκύψει πρόβλημα υλικού ή ο σύνδεσμος μπορεί να διακοπεί ανά πάσα στιγμή κατά τη διάρκεια της διαδικασίας δεδομένων, απαιτείται μια λύση για την παροχή αντιγράφου ασφαλείας όταν το πρόβλημα έχει προκύψει. Έτσι, τα δεδομένα αναπαράγονται για να διασφαλιστεί κανένα σημείο αποτυχίας.
Η Cassandra τοποθετεί αντίγραφα δεδομένων σε διαφορετικούς κόμβους με βάση αυτούς τους δύο παράγοντες.
- Πού να τοποθετήσετε το επόμενο αντίγραφο καθορίζεται από τη στρατηγική αναπαραγωγής .
- Ενώ ο συνολικός αριθμός αντιγράφων που τοποθετούνται σε διαφορετικούς κόμβους καθορίζεται από τον παράγοντα αναπαραγωγής .
Ένας παράγοντας αναπαραγωγής σημαίνει ότι υπάρχει μόνο ένα αντίγραφο δεδομένων, ενώ τρεις συντελεστής αναπαραγωγής σημαίνει ότι υπάρχουν τρία αντίγραφα των δεδομένων σε τρεις διαφορετικούς κόμβους.
Για να διασφαλιστεί ότι δεν υπάρχει κανένα σημείο αποτυχίας, ο συντελεστής αναπαραγωγής πρέπει να είναι τρεις.
Υπάρχουν δύο είδη στρατηγικών αναπαραγωγής στην Κασσάνδρα.
SimpleStrategy
Το SimpleStrategy χρησιμοποιείται όταν έχετε μόνο ένα κέντρο δεδομένων. Το SimpleStrategy τοποθετεί το πρώτο αντίγραφο στον κόμβο που έχει επιλέξει το διαμέρισμα. Μετά από αυτό, τα υπόλοιπα αντίγραφα τοποθετούνται δεξιόστροφα στον δακτύλιο κόμβου.
Εδώ είναι η εικονική αναπαράσταση της SimpleStrategy.
NetworkTopologyStrategy
NetworkTopologyStrategy χρησιμοποιείται όταν έχετε περισσότερα από δύο κέντρα δεδομένων.
Στην NetworkTopologyStrategy, τα αντίγραφα ορίζονται για κάθε κέντρο δεδομένων ξεχωριστά. NetworkTopologyStrategy τοποθετεί αντίγραφα στη φορά των δεικτών του ρολογιού στον δακτύλιο μέχρι να φτάσει στον πρώτο κόμβο σε άλλο ράφι.
Αυτή η στρατηγική προσπαθεί να τοποθετήσει αντίγραφα σε διαφορετικά ράφια στο ίδιο κέντρο δεδομένων. Αυτό οφείλεται στο γεγονός ότι μερικές φορές μπορεί να προκύψει βλάβη ή πρόβλημα στο ράφι. Στη συνέχεια, τα αντίγραφα σε άλλους κόμβους μπορούν να παρέχουν δεδομένα.
Εδώ είναι η εικονική αναπαράσταση της στρατηγικής τοπολογίας δικτύου
Εγγραφή λειτουργίας
Ο συντονιστής στέλνει ένα αίτημα εγγραφής σε αντίγραφα. Εάν όλα τα αντίγραφα έχουν τελειώσει, θα λάβουν αίτημα εγγραφής ανεξάρτητα από το επίπεδο συνέπειας.
Το επίπεδο συνέπειας καθορίζει πόσους κόμβους θα ανταποκριθούν με την αναγνώριση επιτυχίας.
Ο κόμβος θα ανταποκριθεί με την επιβεβαίωση επιτυχίας εάν τα δεδομένα γράφονται επιτυχώς στο αρχείο καταγραφής δεσμεύσεων και στο MemTable.
Για παράδειγμα, σε ένα μόνο κέντρο δεδομένων με συντελεστή αναπαραγωγής ισούται με τρία, τρία αντίγραφα θα λάβουν αίτημα εγγραφής. Εάν το επίπεδο συνέπειας είναι ένα, μόνο ένα αντίγραφο θα ανταποκριθεί με την αναγνώριση επιτυχίας και τα υπόλοιπα δύο θα παραμείνουν αδρανή.
Ας υποθέσουμε ότι εάν τα υπόλοιπα δύο αντίγραφα χάσουν δεδομένα λόγω διακοπής κόμβου ή κάποιου άλλου προβλήματος, η Cassandra θα κάνει τη σειρά συνεπής από τον ενσωματωμένο μηχανισμό επιδιόρθωσης στην Cassandra.
Εδώ εξηγείται, πώς συμβαίνει η διαδικασία εγγραφής στην Κασσάνδρα,
- Όταν το αίτημα εγγραφής έρχεται στον κόμβο, πρώτα απ 'όλα, συνδέεται στο αρχείο καταγραφής δεσμεύσεων.
- Στη συνέχεια, η Κασσάνδρα γράφει τα δεδομένα στον πίνακα μνήμης. Τα δεδομένα που γράφονται στον πίνακα μνήμης σε κάθε αίτημα εγγραφής γράφουν επίσης στο αρχείο καταγραφής δεσμεύσεων ξεχωριστά. Το Mem-table είναι προσωρινά αποθηκευμένα δεδομένα στη μνήμη ενώ το Commit log καταγράφει τις εγγραφές συναλλαγών για λόγους δημιουργίας αντιγράφων ασφαλείας.
- Όταν ο πίνακας mem είναι γεμάτος, τα δεδομένα μεταφέρονται στο αρχείο δεδομένων SSTable.
Διαβάστε τη λειτουργία
Υπάρχουν τρεις τύποι αιτημάτων ανάγνωσης που ένας συντονιστής στέλνει σε αντίγραφα.
- Άμεσο αίτημα
- Αίτημα πέψης
- Διαβάστε το αίτημα επισκευής
Ο συντονιστής στέλνει απευθείας αίτημα σε ένα από τα αντίγραφα. Μετά από αυτό, ο συντονιστής στέλνει το αίτημα σύνοψης στον αριθμό των αντιγράφων που καθορίζονται από το επίπεδο συνέπειας και ελέγχει εάν τα δεδομένα που επιστρέφονται είναι ενημερωμένα δεδομένα.
Μετά από αυτό, ο συντονιστής στέλνει αίτημα σύνοψης σε όλα τα υπόλοιπα αντίγραφα. Εάν οποιοσδήποτε κόμβος δεν έχει ημερομηνία, μια αίτηση επισκευής ανάγνωσης στο παρασκήνιο θα ενημερώσει αυτά τα δεδομένα. Αυτή η διαδικασία ονομάζεται μηχανισμός επισκευής ανάγνωσης.
Περίληψη
Αυτό το σεμινάριο εξηγεί την εσωτερική αρχιτεκτονική της Κασσάνδρας και τον τρόπο με τον οποίο η Κασσάνδρα αναπαράγει, γράφει και διαβάζει δεδομένα σε διαφορετικά στάδια. Επίσης, εδώ εξηγεί πώς η Cassandra διατηρεί το επίπεδο συνοχής καθ 'όλη τη διάρκεια της διαδικασίας.