Cassandra Archiσυντελεστής δομής και αναπαραγωγής

Cassandra έχει σχεδιαστεί για να χειρίζεται Big Data. CassandraΤο κύριο χαρακτηριστικό του είναι να αποθηκεύει δεδομένα σε πολλούς κόμβους χωρίς ένα μόνο σημείο αστοχίας.

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

Cassandra αποθηκεύει δεδομένα σε διαφορετικούς κόμβους με μια αρχιτεκτονική μόδας κατανεμημένη από ομοτίμους.

Όλοι οι κόμβοι ανταλλάσσουν πληροφορίες μεταξύ τους χρησιμοποιώντας Πρωτόκολλο κουτσομπολιού. Το κουτσομπολιό είναι ένα πρωτόκολλο στο Cassandra μέσω των οποίων οι κόμβοι μπορούν να επικοινωνούν μεταξύ τους.

Συστατικά του Cassandra Archiδομή

Υπάρχουν τα ακόλουθα συστατικά στο Cassandra Archiδομή:

Cassandra Archiδομή
Cassandra Archiδιάγραμμα δομής

Κόμβος

Κόμβος είναι το μέρος όπου αποθηκεύονται τα δεδομένα. Είναι το βασικό συστατικό του Cassandra.

Κέντρο δεδομένων

Μια συλλογή κόμβων ονομάζεται κέντρο δεδομένων. Πολλοί κόμβοι κατηγοριοποιούνται ως κέντρο δεδομένων.

Cluster

Το σύμπλεγμα είναι η συλλογή πολλών κέντρων δεδομένων.

Καταγραφή δεσμεύσεων

Κάθε λειτουργία εγγραφής γράφεται στο Commit Log. Το αρχείο καταγραφής δέσμευσης χρησιμοποιείται για την ανάκτηση σφαλμάτων.

Mem-τραπέζι

Μετά την εγγραφή δεδομένων στο αρχείο καταγραφής δέσμευσης, τα δεδομένα εγγράφονται στον πίνακα Mem. Τα δεδομένα εγγράφονται στον πίνακα Mem προσωρινά.

SSTable

Όταν το Mem-table φτάσει σε ένα συγκεκριμένο όριο, τα δεδομένα ξεπλένονται σε ένα αρχείο δίσκου SSTable.

Αντιγραφή δεδομένων σε Cassandra

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

Cassandra τοποθετεί αντίγραφα δεδομένων σε διαφορετικούς κόμβους με βάση αυτούς τους δύο παράγοντες.

  • Το πού θα τοποθετηθεί το επόμενο αντίγραφο καθορίζεται από το Στρατηγική αντιγραφής.
  • Ενώ ο συνολικός αριθμός των αντιγράφων που τοποθετούνται σε διαφορετικούς κόμβους καθορίζεται από το Συντελεστής αναπαραγωγής.

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

Για να διασφαλιστεί ότι δεν υπάρχει κανένα σημείο αποτυχίας, ο συντελεστής αναπαραγωγής πρέπει να είναι τρεις.

Υπάρχουν δύο είδη στρατηγικών αναπαραγωγής Cassandra.

SimpleStrategy σε Cassandra

Απλή Στρατηγική χρησιμοποιείται όταν έχετε μόνο ένα κέντρο δεδομένων. Το SimpleStrategy τοποθετεί το πρώτο αντίγραφο στον κόμβο που έχει επιλεγεί από το διαμέρισμα. Μετά από αυτό, τα υπόλοιπα αντίγραφα τοποθετούνται δεξιόστροφα στον δακτύλιο Κόμβου.

Ακολουθεί η εικονογραφική αναπαράσταση του SimpleStrategy:

SimpleStrategy σε Cassandra
SimpleStrategy σε Cassandra

NetworkTopologyStrategy σε Cassandra

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

Αυτό οφείλεται στον λόγο ότι μερικές φορές μπορεί να προκύψει αστοχία ή πρόβλημα στο ράφι. Στη συνέχεια, τα αντίγραφα σε άλλους κόμβους μπορούν να παρέχουν δεδομένα.

Ακολουθεί η εικονογραφική αναπαράσταση της στρατηγικής τοπολογίας δικτύου:

NetworkTopologyStrategy σε Cassandra
NetworkTopologyStrategy σε Cassandra

Γράφω Operation in Cassandra

Ο συντονιστής στέλνει ένα αίτημα εγγραφής στα αντίγραφα. Εάν όλα τα αντίγραφα είναι επάνω, θα λάβουν αίτημα εγγραφής ανεξάρτητα από το επίπεδο συνέπειάς τους.

Επίπεδο συνέπειας καθορίζει πόσοι κόμβοι θα ανταποκριθούν με την επιβεβαίωση επιτυχίας.

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

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

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

Εδώ εξηγείται πώς συμβαίνει η διαδικασία εγγραφής Cassandra,

  1. Όταν η αίτηση εγγραφής έρχεται στον κόμβο, πρώτα απ 'όλα, καταγράφεται στο αρχείο καταγραφής δέσμευσης.
  2. Τότε Cassandra γράφει τα δεδομένα στον πίνακα mem. Τα δεδομένα που γράφονται στον πίνακα mem σε κάθε αίτημα εγγραφής εγγράφονται επίσης στο αρχείο καταγραφής δεσμεύσεων ξεχωριστά. Το Mem-table είναι προσωρινά αποθηκευμένα δεδομένα στη μνήμη, ενώ το αρχείο καταγραφής Commit καταγράφει τις εγγραφές συναλλαγών για σκοπούς δημιουργίας αντιγράφων ασφαλείας.
  3. Όταν ο mem-table είναι γεμάτος, τα δεδομένα ξεπλένονται στο αρχείο δεδομένων SSTable.
Γράφω Operation in Cassandra
Γράφω Operation in Cassandra

Διάβασε Operation in Cassandra

Υπάρχουν τρεις τύποι αιτημάτων ανάγνωσης που στέλνει ένας συντονιστής σε αντίγραφα.

  1. Άμεσο αίτημα
  2. Αίτημα Digest
  3. Διαβάστε το αίτημα επισκευής

Ο συντονιστής στέλνει απευθείας αίτημα σε ένα από τα αντίγραφα. Μετά από αυτό, ο συντονιστής στέλνει το αίτημα σύνοψης στον αριθμό των αντιγράφων που καθορίζεται από το επίπεδο συνέπειας και ελέγχει εάν τα επιστρεφόμενα δεδομένα είναι ενημερωμένα δεδομένα.

Μετά από αυτό, ο συντονιστής στέλνει αίτημα σύνοψης σε όλα τα υπόλοιπα αντίγραφα. Εάν οποιοσδήποτε κόμβος δίνει μη ενημερωμένη τιμή, ένα αίτημα επιδιόρθωσης ανάγνωσης στο παρασκήνιο θα ενημερώσει αυτά τα δεδομένα. Αυτή η διαδικασία ονομάζεται μηχανισμός επιδιόρθωσης ανάγνωσης.

Σύνοψη

  • Αυτό το σεμινάριο εξηγεί το Cassandra εσωτερική αρχιτεκτονική και πώς Cassandra αντιγράφει, γράφει και διαβάζει δεδομένα σε διαφορετικά στάδια.
  • Επίσης, εδώ εξηγείται πώς Cassandra διατηρεί το επίπεδο συνέπειας σε όλη τη διαδικασία.
  • Συστατικά του Cassandra Architecture: Node, Data Center, Cluster, Commit Log, Mem-table, SSTable
  • Ένας παράγοντας αναπαραγωγής σημαίνει ότι υπάρχει μόνο ένα αντίγραφο δεδομένων ενώ τρεις συντελεστές αναπαραγωγής σημαίνει ότι υπάρχουν τρία αντίγραφα των δεδομένων σε τρεις διαφορετικούς κόμβους.
  • Το SimpleStrategy χρησιμοποιείται όταν έχετε μόνο ένα κέντρο δεδομένων.
  • Το NetworkTopologyStrategy χρησιμοποιείται όταν έχετε περισσότερα από δύο κέντρα δεδομένων.