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

Το Microsoft Graph Engine ανοιχτού κώδικα χρησιμοποιεί το Neo4j

Μερικές φορές οι σχέσεις μεταξύ των δεδομένων που έχετε συγκεντρώσει είναι πιο σημαντικές από τα ίδια τα δεδομένα. (Δείτε: Το Facebook δημιουργεί έσοδα από τη λίστα των φίλων σας.) Τότε είναι χρήσιμο ένα σύστημα επεξεργασίας γραφημάτων. Είναι μια σημαντική αλλά συχνά ελάχιστα κατανοητή μέθοδος για να εξερευνήσετε τον τρόπο με τον οποίο αλληλοσυνδέονται τα στοιχεία ενός συνόλου δεδομένων.

Η Microsoft εξερευνά αυτήν την περιοχή τουλάχιστον από το 2013, όταν δημοσίευσε ένα έγγραφο που περιγράφει το έργο Trinity, μια μηχανή γραφήματος που βασίζεται σε σύννεφο και στη μνήμη. Οι καρποί της προσπάθειας, γνωστοί ως Microsoft Graph Engine, είναι τώρα διαθέσιμοι ως έργο ανοιχτού κώδικα με άδεια MIT ως εναλλακτική λύση σε σχέση με το Neo4j ή το πρόσφατα ανακοινωμένο JanusGraph του Linux Foundation.

Όλα είναι συνδεδεμένα

Η Microsoft καλεί το Graph Engine (GE) ως "χώρο αποθήκευσης RAM και μηχανή υπολογισμού". Τα δεδομένα μπορούν να εισαχθούν στο GE και να ανακτηθούν με υψηλή ταχύτητα, καθώς διατηρούνται στη μνήμη και γράφονται μόνο στο δίσκο, όπως απαιτείται. Μπορεί να λειτουργήσει ως απλό κατάστημα κλειδιού-τιμής όπως το Memcached, αλλά το Redis μπορεί να είναι η καλύτερη σύγκριση, καθώς η GE αποθηκεύει δεδομένα σε σχήματα με έντονα δακτυλογραφημένα (συμβολοσειρά, ακέραιος και ούτω καθεξής).

Η "μηχανή υπολογισμού" μέρος της εξίσωσης σημαίνει ότι η GE εφαρμόζει κατανεμημένους αλγόριθμους σε κόμβους, γραμμένους σε C #. Δεν είναι βελτιστοποιημένο για ένα συγκεκριμένο είδος αλγορίθμου γραφήματος, οπότε πιθανότατα θα απευθύνεται σε όσους θέλουν να γράψουν τους δικούς τους αλγόριθμους εξερεύνησης γραφημάτων από την αρχή - ή απλά να γράψουν τους δικούς τους κατανεμημένους αλγόριθμους.

"Αντί να προσπαθεί να παρέχει ένα εξαντλητικό σύνολο ενσωματωμένων μονάδων υπολογισμού", δηλώνει η τεκμηρίωση της Microsoft, "η GE προσπαθεί να παρέχει γενικές δομικές μονάδες που μας επιτρέπουν να κατασκευάζουμε εύκολα τέτοιες μονάδες." Αυτά τα μπλοκ περιλαμβάνουν ένα σύστημα για συγχρονισμένη και ασύγχρονη μετάδοση μηνυμάτων, καθώς και τη γλώσσα ερωτήματος γραφήματος LIKQ που χρησιμοποιείται ήδη από το Ακαδημαϊκό API αναζήτησης γραφημάτων στις υπηρεσίες Microsoft Cognitive Services.

Διαφορετικοί τρόποι μέσω του λαβυρίνθου

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

Τούτου λεχθέντος, μόνο η εμπορική, εταιρική έκδοση Neo4j υποστηρίζει θραύση και αναπαραγωγή. Η GE, αντίθετα, συγκεντρώνεται στην προεπιλεγμένη ενσάρκωση ανοιχτού κώδικα, αν και η ομαδοποίηση τόσο στο Neo4j όσο και στη GE απαιτεί μη αυτόματη ρύθμιση. Στην περίπτωση της GE, οι ρόλοι για κάθε κόμβο στο σύμπλεγμα (διακομιστές και, προαιρετικά, διακομιστές μεσολάβησης ερωτήματος) πρέπει να ρυθμιστούν χειροκίνητα ανάλογα με την περίπτωση χρήσης.

Μια άλλη κατανεμημένη βάση δεδομένων γραφήματος που αξίζει να συγκρίνουμε με την GE είναι η JanusGraph, ένα νέο έργο υπό τη χορηγία του Linux Foundation με συνεισφορές από την Google, την Hortonworks και την IBM. Έχει κατασκευαστεί για να συνεργάζεται στενά και να αξιοποιεί το οικοσύστημα Hadoop. Το Elasticsearch και το Lucene μπορούν να χρησιμοποιηθούν ως μηχανές ευρετηρίασης και το Cassandra και το HBase μπορούν να χρησιμοποιηθούν ως αποθήκες δεδομένων. Με το GE, τα δεδομένα πρέπει να εισαχθούν πρώτα σε αυτό.

Αυτό που φαίνεται να στοχεύει η Microsoft με τη GE δεν είναι ο άμεσος ανταγωνισμός με αυτά τα έργα. Αντ 'αυτού, η GE είναι ένα κομμάτι της κατανεμημένης υποδομής αποθήκευσης δεδομένων που λαμβάνει νέα δεδομένα και παρέχει τον υπολογισμό γραφήματος ως ένα από τα πολλαπλά οφέλη της. Η φιλελεύθερη αδειοδότησή του το καθιστά επίσης εύκολα επανατοποθετημένο σε άλλα προϊόντα ή επαναχρησιμοποιείται για φιλοξενία σε κλίμακα. Δεν είναι σαφές εάν η Microsoft έχει χρησιμοποιήσει το GE ως μέρος οποιουδήποτε από τα δικά της συστήματα (αν και έχει χρησιμοποιήσει το LIKQ, όπως σημειώνεται παραπάνω).

Εάν αυτοί που βασίζονται σε πλατφόρμες εκτός της Microsoft ενδιαφέρονται να δοκιμάσουν το Graph Engine, η υποστήριξη πολλαπλών πλατφορμών για Linux / BSD έρχεται σύντομα, σύμφωνα με έναν από τους προγραμματιστές.

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