Διατίθεται Apache Cassandra 4.0 DBMS

Το Apache Software Foundation παρουσίασε την κυκλοφορία του κατανεμημένου DBMS Apache Cassandra 4.0, το οποίο ανήκει στην κατηγορία των συστημάτων noSQL και έχει σχεδιαστεί για να δημιουργεί εξαιρετικά επεκτάσιμη και αξιόπιστη αποθήκευση τεράστιων ποσοτήτων δεδομένων που είναι αποθηκευμένα με τη μορφή συσχετιστικού πίνακα (hash). Η έκδοση Cassandra 4.0 θεωρείται έτοιμη για υλοποίηση παραγωγής και έχει ήδη δοκιμαστεί στις υποδομές των Amazon, Apple, DataStax, Instaclustr, iland και Netflix με clusters άνω των 1000 κόμβων. Ο κώδικας του έργου είναι γραμμένος σε Java και διανέμεται με την άδεια Apache 2.0.

Το Cassandra DBMS αναπτύχθηκε αρχικά από το Facebook και το 2009 μεταφέρθηκε υπό την αιγίδα του Apache Foundation. Βιομηχανικές λύσεις που βασίζονται στην Cassandra έχουν αναπτυχθεί σε υπηρεσίες παροχής ενέργειας από εταιρείες όπως η Apple, η Adobe, το CERN, η Cisco, η IBM, η HP, η Comcast, η Disney, το eBay, η Huawei, το Netflix, η Sony, το Rackspace, το Reddit και το Twitter. Για παράδειγμα, η υποδομή αποθήκευσης που βασίζεται στο Apache Cassandra που αναπτύσσεται από την Apple έχει περισσότερα από χίλια συμπλέγματα, συμπεριλαμβανομένων 160 χιλιάδων κόμβων και αποθήκευσης δεδομένων άνω των 100 petabyte. Η Huawei χρησιμοποιεί περισσότερα από 300 συμπλέγματα Apache Cassandra, συμπεριλαμβανομένων 30 χιλιάδων κόμβων, και το Netflix χρησιμοποιεί περισσότερα από 100 συμπλέγματα, που καλύπτουν 10 χιλιάδες κόμβους και επεξεργάζονται περισσότερα από ένα τρισεκατομμύριο αιτήματα την ημέρα.

Το Cassandra DBMS συνδυάζει ένα πλήρως κατανεμημένο σύστημα κατακερματισμού Dynamo, το οποίο παρέχει σχεδόν γραμμική επεκτασιμότητα καθώς αυξάνεται ο όγκος των δεδομένων. Η Cassandra χρησιμοποιεί ένα μοντέλο αποθήκευσης δεδομένων που βασίζεται σε μια οικογένεια στηλών (ColumnFamily), η οποία διαφέρει από συστήματα όπως το memcachedb, τα οποία αποθηκεύουν δεδομένα μόνο σε μια αλυσίδα κλειδιού/τιμής, λόγω της ικανότητας οργάνωσης αποθήκευσης κατακερματισμών με πολλά επίπεδα ένθεσης. Για να απλοποιηθεί η αλληλεπίδραση με τη βάση δεδομένων, υποστηρίζεται η δομημένη γλώσσα ερωτημάτων CQL (Cassandra Query Language), η οποία θυμίζει SQL, αλλά με μειωμένη λειτουργικότητα. Οι δυνατότητες περιλαμβάνουν υποστήριξη για χώρους ονομάτων και οικογένειες στηλών και τη δημιουργία ευρετηρίων χρησιμοποιώντας την έκφραση «ΔΗΜΙΟΥΡΓΙΑ ΕΥΡΕΤΗΡΙΟΥ».

Το DBMS σάς επιτρέπει να δημιουργείτε αποθηκευτικό χώρο ανθεκτικό σε αστοχίες: τα δεδομένα που τοποθετούνται στη βάση δεδομένων αναπαράγονται αυτόματα σε πολλούς κόμβους ενός κατανεμημένου δικτύου, τα οποία μπορούν να εκτείνονται σε διαφορετικά κέντρα δεδομένων. Όταν ένας κόμβος αποτυγχάνει, οι λειτουργίες του επιλέγονται αμέσως από άλλους κόμβους. Η προσθήκη νέων κόμβων στο σύμπλεγμα και η ενημέρωση της έκδοσης Cassandra γίνεται εν κινήσει, χωρίς πρόσθετη χειροκίνητη παρέμβαση ή αναδιαμόρφωση άλλων κόμβων. Τα προγράμματα οδήγησης με υποστήριξη CQL είναι προετοιμασμένα για Python, Java (JDBC/DBAPI2), Ruby, PHP, C++ και JavaScript (Node.js).

Βασικές καινοτομίες:

  • Βελτιωμένη απόδοση και επεκτασιμότητα. Η αποτελεσματικότητα της ανταλλαγής δεδομένων σε μορφή SSTable (Sorted String Table) μεταξύ κόμβων έχει βελτιωθεί. Το πρωτόκολλο Internode Messaging έχει βελτιστοποιηθεί. Η ταχύτητα μεταφοράς ροών δεδομένων μεταξύ κόμβων έχει αυξηθεί έως και 5 φορές (κυρίως λόγω της χρήσης της τεχνικής Zero Copy και της μεταφοράς ολόκληρων SSTables) και η απόδοση για λειτουργίες ανάγνωσης και εγγραφής έχει αυξηθεί στο 25%. Η διαδικασία σταδιακής ανάκτησης έχει βελτιστοποιηθεί. Οι καθυστερήσεις λόγω παύσης συλλογής σκουπιδιών μειώνονται σε μερικά χιλιοστά του δευτερολέπτου.
  • Προστέθηκε υποστήριξη για ένα αρχείο καταγραφής ελέγχου που σας επιτρέπει να παρακολουθείτε τις λειτουργίες ελέγχου ταυτότητας χρήστη και όλα τα εκτελούμενα ερωτήματα CQL.
  • Προστέθηκε η δυνατότητα διατήρησης ενός πλήρους δυαδικού αρχείου καταγραφής αιτημάτων, επιτρέποντάς σας να αποθηκεύετε όλη την κίνηση αιτημάτων και απαντήσεων. Για τη διαχείριση, προτείνονται οι εντολές "nodetool enablefullquerylog|disablefullquerylog|resetfullquerylog" και παρέχεται το βοηθητικό πρόγραμμα fqltool για ανάλυση αρχείων καταγραφής. Παρέχονται εντολές για τη μετατροπή του αρχείου καταγραφής σε αναγνώσιμη μορφή (Dump), τη σύγκριση τμημάτων δραστηριότητας (Σύγκριση) και την εκ νέου εκτέλεση (Επανάληψη) για ανάλυση που αναπαράγει τις συνθήκες που είναι εγγενείς στο πραγματικό φορτίο.
  • Προστέθηκε υποστήριξη για εικονικούς πίνακες που αντικατοπτρίζουν όχι δεδομένα που είναι αποθηκευμένα σε SSTables, αλλά πληροφορίες που εξάγονται μέσω του API (μετρήσεις απόδοσης, πληροφορίες ρυθμίσεων, περιεχόμενα προσωρινής μνήμης, πληροφορίες σχετικά με συνδεδεμένους πελάτες κ.λπ.).
  • Η αποτελεσματικότητα της αποθήκευσης συμπιεσμένων δεδομένων έχει βελτιωθεί, μειώνοντας την κατανάλωση χώρου στο δίσκο και βελτιώνοντας την απόδοση ανάγνωσης.
  • Τα δεδομένα που σχετίζονται με τον χώρο κλειδιών συστήματος (σύστημα.*) τοποθετούνται πλέον στον πρώτο κατάλογο από προεπιλογή αντί να διανέμονται σε όλους τους καταλόγους δεδομένων, γεγονός που επιτρέπει στον κόμβο να παραμείνει λειτουργικός εάν αποτύχει ένας από τους πρόσθετους δίσκους.
  • Προστέθηκε πειραματική υποστήριξη για Transient Replication και Cheap Quorums. Τα προσωρινά αντίγραφα δεν αποθηκεύουν όλα τα δεδομένα και χρησιμοποιούν σταδιακή επαναφορά για να είναι συνεπή με τα πλήρη αντίγραφα. Οι ελαφριές απαρτίες υλοποιούν βελτιστοποίηση των λειτουργιών εγγραφής, στις οποίες οι εγγραφές σε προσωρινά αντίγραφα δεν εκτελούνται έως ότου είναι διαθέσιμο ένα επαρκές σύνολο πλήρων αντιγράφων.
  • Προστέθηκε πειραματική υποστήριξη για Java 11.
  • Προστέθηκε πειραματική επιλογή για σύγκριση όλων των δέντρων Merkle. Για παράδειγμα, η ενεργοποίηση της επιλογής σε ένα σύμπλεγμα 3 κόμβων στο οποίο δύο αντίγραφα είναι πανομοιότυπα και το ένα είναι παλιό θα έχει ως αποτέλεσμα την ενημέρωση του παλιού αντιγράφου χρησιμοποιώντας μόνο μία λειτουργία αντιγραφής του τρέχοντος αντιγράφου.
  • Προστέθηκαν νέες λειτουργίες currentTimestamp, currentDate, currentTime και currentTimeUUID.
  • Προστέθηκε υποστήριξη για αριθμητικές πράξεις σε ερωτήματα CQL.
  • Παρέχεται η δυνατότητα εκτέλεσης αριθμητικών πράξεων μεταξύ δεδομένων με τους τύπους “timestamp”/”date” και “duration”.
  • Προστέθηκε μια λειτουργία για την προεπισκόπηση των ροών δεδομένων που απαιτούνται για την ανάκτηση (επισκευή nodetool — προεπισκόπηση) και τη δυνατότητα ελέγχου της ακεραιότητας των δεδομένων που αποκαθίστανται (επισκευή nodetool — επικύρωση).
  • Τα ερωτήματα SELECT έχουν πλέον τη δυνατότητα επεξεργασίας στοιχείων χάρτη και ορισμού.
  • Προστέθηκε υποστήριξη για την παραλληλοποίηση του αρχικού σταδίου κατασκευής υλοποιημένων προβολών (cassandra.yaml:concurrent_materialized_view_builders).
  • Η εντολή "nodetool cfstats" έχει προσθέσει υποστήριξη για ταξινόμηση κατά συγκεκριμένες μετρήσεις και περιορισμό του αριθμού των σειρών που εμφανίζονται.
  • Παρέχονται ρυθμίσεις για τον περιορισμό της σύνδεσης του χρήστη μόνο σε συγκεκριμένα κέντρα δεδομένων.
  • Προστέθηκε η δυνατότητα περιορισμού της έντασης (όριο ταχύτητας) των λειτουργιών δημιουργίας στιγμιότυπου και εκκαθάρισης.
  • Τα cqlsh και cqlshlib υποστηρίζουν πλέον την Python 3 (η Python 2.7 εξακολουθεί να υποστηρίζεται).
  • Η υποστήριξη για την πλατφόρμα Windows έχει διακοπεί. Για την εκτέλεση του Cassandra σε Windows, συνιστάται η χρήση περιβαλλόντων Linux που έχουν δημιουργηθεί με βάση το υποσύστημα WSL2 (Windows Subsystem for Linux 2) ή συστήματα εικονικοποίησης.



Πηγή: opennet.ru

Προσθέστε ένα σχόλιο