Προγραμματισμός

Ανάψτε μια φωτιά κάτω από την Κασσάνδρα με τον Apache Ignite

Η Nikita Ivanov είναι συνιδρυτής και CTO της GridGain Systems.

Το Apache Cassandra είναι μια δημοφιλής βάση δεδομένων για διάφορους λόγους. Η ανοιχτή πηγή, διανεμημένη, βάση δεδομένων NoSQL δεν έχει κανένα σημείο αποτυχίας, επομένως είναι κατάλληλη για εφαρμογές υψηλής διαθεσιμότητας. Υποστηρίζει αναπαραγωγή πολλαπλών κέντρων δεδομένων, επιτρέποντας στους οργανισμούς να επιτύχουν μεγαλύτερη ανθεκτικότητα, για παράδειγμα, αποθηκεύοντας δεδομένα σε πολλές ζώνες διαθεσιμότητας Amazon Web Services. Προσφέρει επίσης μαζική και γραμμική επεκτασιμότητα, οπότε οποιοσδήποτε αριθμός κόμβων μπορεί εύκολα να προστεθεί σε οποιοδήποτε σύμπλεγμα Cassandra σε οποιοδήποτε κέντρο δεδομένων. Για αυτούς τους λόγους, εταιρείες όπως το Netflix, το eBay, η Expedia και πολλές άλλες χρησιμοποιούν το Cassandra για βασικά μέρη των επιχειρήσεων τους εδώ και πολλά χρόνια.

Με την πάροδο του χρόνου, ωστόσο, καθώς οι επιχειρηματικές απαιτήσεις εξελίσσονται και η κλίμακα ανάπτυξης της Cassandra, πολλοί οργανισμοί βρίσκονται περιορισμένοι από ορισμένους από τους περιορισμούς της Cassandra, οι οποίοι με τη σειρά τους περιορίζουν ό, τι μπορούν να κάνουν με τα δεδομένα τους. Το Apache Ignite, μια πλατφόρμα υπολογιστών στη μνήμη, παρέχει σε αυτούς τους οργανισμούς έναν νέο τρόπο πρόσβασης και διαχείρισης της υποδομής Cassandra, επιτρέποντάς τους να διαθέσουν τα δεδομένα Cassandra σε νέες περιπτώσεις χρήσης OLTP και OLAP, ενώ παράλληλα προσφέρουν εξαιρετικά υψηλή απόδοση.

Περιορισμοί της Κασσάνδρας

Ένας βασικός περιορισμός της Cassandra είναι ότι βασίζεται σε δίσκο και όχι σε μια βάση δεδομένων στη μνήμη. Αυτό σημαίνει ότι η απόδοση ανάγνωσης περιορίζεται πάντα από τις προδιαγραφές I / O, περιορίζοντας τελικά την απόδοση της εφαρμογής και περιορίζοντας την ικανότητα απόκτησης αποδεκτής εμπειρίας χρήστη. Εξετάστε αυτήν τη σύγκριση: Αυτό που μπορεί να υποβληθεί σε επεξεργασία σε ένα σύστημα στη μνήμη σε ένα λεπτό θα χρειαστούν δεκαετίες σε ένα σύστημα που βασίζεται σε δίσκο. Ακόμη και με τη χρήση μονάδων flash, θα χρειαστούν ακόμη μήνες.

Ενώ η Cassandra προσφέρει πολύ γρήγορη απόδοση εγγραφής δεδομένων, η επίτευξη της βέλτιστης απόδοσης ανάγνωσης απαιτεί τα δεδομένα Cassandra να εγγράφονται διαδοχικά στο δίσκο, έτσι ώστε κατά την ανάγνωση, η κεφαλή δίσκου μπορεί να σαρώσει για όσο το δυνατόν περισσότερο χωρίς την καθυστέρηση του κεφαλιού να μεταπηδά από τοποθεσία σε τοποθεσία . Για να επιτευχθεί αυτό, τα ερωτήματα πρέπει να είναι απλά, χωρίς κανένα ΣΥΜΜΕΤΟΧΗμικρό, ΟΜΑΔΑ ΑΠΟs, ή συγκέντρωση, και τα δεδομένα πρέπει να μοντελοποιηθούν για αυτά τα ερωτήματα. Ως εκ τούτου, η Κασσάνδρα δεν προσφέρει ad hoc ή SQL δυνατότητα ερωτήματος καθόλου.

Η DataStax, μια εταιρεία που αναπτύσσει και παρέχει υποστήριξη για μια εμπορική έκδοση του Apache Cassandra, πρόσθεσε τη δυνατότητα σύνδεσης της Cassandra με την Apache Spark και την Apache Solr για την υποστήριξη αναλυτικών στοιχείων. Ωστόσο, αυτή η στρατηγική παρέχει περιορισμένο όφελος, επειδή η χρήση συνδέσμων είναι ένας πολύ ακριβός τρόπος πρόσβασης σε ένα υποσύνολο των δεδομένων. Τα δεδομένα πρέπει ακόμη να καθοριστούν διαδοχικά ή η απόδοση θα είναι κακή, επειδή η Cassandra θα χρειαστεί να κάνει μια πλήρη σάρωση πίνακα, η οποία είναι μια προσέγγιση διασποράς / συγκέντρωσης που περιλαμβάνει μεγάλο χρόνο καθυστέρησης δίσκου.

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

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

Εισαγάγετε το Apache Ignite

Το Apache Ignite είναι μια πλατφόρμα υπολογιστών στη μνήμη που μπορεί να βοηθήσει στην υπέρβαση αυτών των περιορισμών στην Κασσάνδρα, αποφεύγοντας παράλληλα τα γενικά έξοδα της προσέγγισης σύνδεσης. Το Apache Ignite μπορεί να εισαχθεί μεταξύ του Apache Cassandra και ενός υπάρχοντος επιπέδου εφαρμογής χωρίς αλλαγές στα δεδομένα Cassandra και μόνο ελάχιστες αλλαγές στην εφαρμογή. Τα δεδομένα Cassandra φορτώνονται στο σύμπλεγμα Ignite στη μνήμη και η εφαρμογή αποκτά πρόσβαση με διαφάνεια στα δεδομένα από τη μνήμη RAM αντί από το δίσκο, επιταχύνοντας την απόδοση τουλάχιστον 1.000x. Τα δεδομένα που γράφονται από την εφαρμογή γράφονται πρώτα στο σύμπλεγμα Ignite για άμεση, συνεχή κατανάλωση. Στη συνέχεια γράφεται σε δίσκο στην Κασσάνδρα για μόνιμη αποθήκευση με συγχρονισμένες ή ασύγχρονες εγγραφές.

Το Apache Ignite έχει επίσης την ίδια στρατηγική εγγραφής με το Apache Cassandra, οπότε θα αισθανθεί οικείο στους χρήστες της Cassandra. Όπως η Cassandra, το Ignite είναι ανοιχτού κώδικα και οι χρήστες του επωφελούνται από μια μεγάλη και ενεργή κοινότητα, με υποστήριξη διαθέσιμη μέσω πολλών ιστότοπων της κοινότητας. Ωστόσο, ως πλατφόρμα υπολογιστών στη μνήμη, το Apache Ignite επιτρέπει στους οργανισμούς να κάνουν πολύ περισσότερα με τα δεδομένα Cassandra τους και να το κάνουν γρηγορότερα. Δείτε πώς.

  • Περισσότερες επιλογές δεδομένων - εγγυήσεις συναλλαγών ANSI SQL-99 και ACID

    Με την υποστήριξη ενός κινητήρα συμβατού με ANSI SQL-99, το Apache Ignite προσφέρει εγγυήσεις συναλλαγών ACID για κατανεμημένες συναλλαγές. Το πλέγμα In-Memory SQL παρέχει δυνατότητες βάσης δεδομένων στη μνήμη και περιλαμβάνονται API ODBC και JDBC. Συνδυάζοντας το Ignite με το Apache Cassandra, οποιοσδήποτε τύπος OLAP ή σύνθετο ερώτημα SQL μπορεί να γραφτεί με δεδομένα Cassandra που έχουν φορτωθεί στο Ignite. Το Ignite μπορεί επίσης να λειτουργήσει με πολλαπλούς τρόπους, από την ενδεχόμενη συνοχή έως την πλήρη συμμόρφωση με ACID σε πραγματικό χρόνο, επιτρέποντας στους οργανισμούς να χρησιμοποιούν τα δεδομένα που είναι αποθηκευμένα στην Κασσάνδρα (αλλά διαβάζονται στο Ignite) για μια σειρά από νέες εφαρμογές και πρωτοβουλίες.
  • Χωρίς αναδιαμόρφωση δεδομένων Cassandra

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

    Η μεταφορά όλων των δεδομένων Apache Cassandra στη μνήμη RAM προσφέρει την ταχύτερη δυνατή απόδοση και βελτιώνει σημαντικά την ταχύτητα των ερωτημάτων, επειδή τα δεδομένα δεν διαβάζονται και γράφονται συνεχώς από το δίσκο. Είναι επίσης δυνατό να χρησιμοποιήσετε το Apache Ignite για προσωρινή αποθήκευση μόνο του ενεργού τμήματος των δεδομένων Cassandra για να επιτύχετε μια σημαντική αύξηση ταχύτητας. Τα ευρετήρια του Ignite βρίσκονται επίσης στη μνήμη, καθιστώντας δυνατή την εκτέλεση εξαιρετικά γρήγορων ερωτημάτων SQL στα δεδομένα Cassandra που έχουν μεταφερθεί στο Ignite.
  • Απλή οριζόντια και κάθετη κλιμάκωση

    Όπως το Apache Cassandra, το Apache Ignite κλιμακώνεται εύκολα οριζόντια προσθέτοντας κόμβους στο σύμπλεγμα Ignite. Οι νέοι κόμβοι παρέχουν άμεσα επιπλέον μνήμη για την αποθήκευση δεδομένων Cassandra. Ωστόσο, το Ignite κλιμακώνεται εύκολα κάθετα. Το Ignite μπορεί να χρησιμοποιήσει όλη τη μνήμη σε έναν κόμβο, όχι μόνο τη μνήμη JVM, και τα αντικείμενα μπορούν να οριστούν για να ζουν πάνω ή εκτός σωρού και να χρησιμοποιούν όλη τη μνήμη στα μηχανήματα. Με αυτόν τον τρόπο, απλώς αυξάνοντας το μέγεθος της μνήμης σε κάθε κόμβο, κλιμακώνεται αυτόματα το σύμπλεγμα Ignite κάθετα.
  • Αυξημένη διαθεσιμότητα

    Όπως και η Apache Cassandra, η πλατφόρμα υπολογιστών Apache Ignite peer-to-peer είναι πάντα διαθέσιμη. Η αποτυχία ενός κόμβου δεν εμποδίζει τις εφαρμογές να γράφουν και να διαβάζουν από καθορισμένους εφεδρικούς κόμβους. Η αναδιανομή δεδομένων είναι επίσης αυτόματη καθώς μεγαλώνει ένα σύμπλεγμα Ignite. Επειδή το Ignite προσφέρει εξελιγμένη υποστήριξη συμπλέγματος, όπως ανίχνευση και αποκατάσταση καταστάσεων εγκεφαλικού διαχωρισμού, το συνδυασμένο σύστημα Cassandra / Ignite είναι πιο διαθέσιμο από ένα αυτόνομο σύστημα Cassandra.
  • Απλούστερη και ταχύτερη από το Hadoop

    Πολλοί οργανισμοί που θα ήθελαν να κάνουν ερωτήματα SQL στα δεδομένα τους Apache Cassandra σκέφτονται να φορτώσουν τα δεδομένα στο Hadoop. Το μειονέκτημα αυτής της προσέγγισης είναι ότι, μετά την επίλυση του ETL και των προκλήσεων συγχρονισμού δεδομένων που προκύπτουν, τα ερωτήματα στο Hadoop θα εξακολουθούν να είναι σχετικά πολύ αργά. Ενώ ο συνδυασμός Cassandra και Ignite θα οδηγήσει επίσης σε μια μικρή επιτυχία απόδοσης λόγω του πρόσθετου συστήματος και της προσωρινής αποθήκευσης, τα ερωτήματα εκτελούνται ωστόσο με απίστευτη ταχύτητα, καθιστώντας τη λύση ιδανική για αναλύσεις σε πραγματικό χρόνο. Και η διαχείριση της σχέσης μεταξύ των δεδομένων Ignite και Cassandra είναι πολύ απλούστερη.

Προκλήσεις για την εφαρμογή της Κασσάνδρας και του Ignite

Όπως προαναφέρθηκε, ο συνδυασμός Apache Cassandra και Apache Ignite συνεπάγεται κόστος. Φυσικά χτυπάτε την απόδοση - και το κόστος και τη συντήρηση - να έχετε δύο δίκτυα (όπως θα κάνατε με την προσθήκη οποιασδήποτε άλλης λύσης). Υπάρχει κόστος υλικού για νέους διακομιστές εμπορευμάτων και επαρκής μνήμη RAM, και ίσως κόστος συνδρομής για μια εταιρική και υποστηριζόμενη έκδοση του Apache Ignite. Περαιτέρω, η εφαρμογή και η συντήρηση του Ignite μπορεί να απαιτήσει από ορισμένους οργανισμούς να προσλάβουν πρόσθετη εμπειρία. Ως αποτέλεσμα, δικαιολογείται μια ανάλυση κόστους / οφέλους για να διασφαλιστεί ότι τα στρατηγικά οφέλη από κάθε νέα περίπτωση χρήσης, μαζί με τα κέρδη απόδοσης, υπερβαίνουν το κόστος.

Κατά τον προσδιορισμό αυτό, οι ακόλουθες σκέψεις είναι σημαντικές. Πρώτον, σε αντίθεση με την προηγούμενη γενιά υπολογιστικών λύσεων στη μνήμη, οι οποίες απαιτούσαν συγχώνευση πολλαπλών προϊόντων, το Apache Ignite είναι μια πλήρως ολοκληρωμένη, εύχρηστη λύση. Η ενσωμάτωση του Ignite στο Apache Cassandra είναι συνήθως μια πολύ απλή διαδικασία. Ανάφλεξη διαφανειών μεταξύ της Κασσάνδρας και μιας εφαρμογής, όπως η Apache Kafka ή άλλος πελάτης, που έχει πρόσβαση στα δεδομένα. Το Ignite περιλαμβάνει έναν προκαθορισμένο σύνδεσμο Cassandra, ο οποίος απλοποιεί τη διαδικασία. Στη συνέχεια, η εφαρμογή διαβάζει και γράφει από το Ignite αντί για Cassandra, οπότε έχει πάντα πρόσβαση σε δεδομένα από τη μνήμη αντί από το δίσκο. Το Ignite χειρίζεται αυτόματα τις αναγνώσεις και τις εγγραφές από και προς την Κασσάνδρα.

Δεύτερον, ενώ πολλοί εξακολουθούν να πιστεύουν ότι ο υπολογιστής στη μνήμη είναι απαγορευτικά ακριβός, το κόστος της μνήμης RAM έχει μειωθεί περίπου 30 τοις εκατό ετησίως από τη δεκαετία του 1960. Παρόλο που η μνήμη RAM εξακολουθεί να είναι λίβρα για λίβρα πιο ακριβή από τα SSD, το όφελος απόδοσης της χρήσης terabyte RAM σε ένα σύμπλεγμα υπολογιστών στη μνήμη, ειδικά για εφαρμογές μεγάλης κλίμακας, κρίσιμες για την αποστολή, μπορεί να κάνει τον υπολογισμό στη μνήμη τον πιο οικονομικό πλησιάζω.

Τέλος, το Apache Ignite είναι ένα ασφαλές στοίχημα με μια ώριμη βάση κώδικα. Ξεκίνησε ως ένα ιδιωτικό έργο το 2007, δωρήθηκε στο Apache Software Foundation το 2014 και αποφοίτησε σε ένα έργο ανώτερου επιπέδου περίπου ένα χρόνο αργότερα - το δεύτερο ταχύτερο έργο Apache που αποφοίτησε μετά το Apache Spark.

Το Apache Cassandra είναι μια σταθερή, αποδεδειγμένη λύση που μπορεί να αποτελέσει ζωτικό στοιχείο πολλών στρατηγικών δεδομένων. Με το Apache Ignite, τα δεδομένα Cassandra μπορούν να γίνουν πιο χρήσιμα. Η πλατφόρμα υπολογιστών Apache Ignite στη μνήμη είναι μια προσιτή και αποτελεσματική λύση για τη διάθεση δεδομένων Cassandra για νέες περιπτώσεις χρήσης OLTP και OLAP, ενώ ικανοποιεί τις ακραίες απαιτήσεις απόδοσης των σημερινών εφαρμογών κλίμακας Ιστού . Η συνδυασμένη λύση διατηρεί την υψηλή διαθεσιμότητα και την οριζόντια επεκτασιμότητα της Cassandra, προσθέτοντας παράλληλα ANSI SQL-99 δυνατότητες ερωτήματος, κατακόρυφη επεκτασιμότητα, πιο ισχυρή συνέπεια με εγγυήσεις συναλλαγών ACID και πολλά άλλα - παράλληλα παράγοντας απόδοση που είναι 1.000x γρηγορότερη από τη βάση δίσκου προσεγγίσεις.

Το New Tech Forum παρέχει έναν χώρο για να εξερευνήσετε και να συζητήσετε την αναδυόμενη τεχνολογία σε πρωτοφανές βάθος και εύρος. Η επιλογή είναι υποκειμενική, με βάση την επιλογή των τεχνολογιών που πιστεύουμε ότι είναι σημαντικές και έχουν μεγάλο ενδιαφέρον για τους αναγνώστες. δεν αποδέχεται ασφάλεια μάρκετινγκ για δημοσίευση και διατηρεί το δικαίωμα να επεξεργαστεί όλο το περιεχόμενο. Στείλτε όλες τις ερωτήσεις στο [email protected].

$config[zx-auto] not found$config[zx-overlay] not found