Το Facebook χρησιμοποιεί το MongoDB?
Facebook -134mg1q -webkit-align-self: center-ms-flex-item-align: κέντρο; Ευθυγράμμιση-Κέντρο; Επεξεργασία: 0 10px; Ορατότητα: Κρυμμένο. CSS-6vrlzm Border-Radius: 0! σπουδαίος; Εμφάνιση: Αρχική! σπουδαίος; Περιθώριο: Αρχικό! σπουδαίος;. CSS-1L4S55V περιθώριο-top-175px; θέση: απόλυτη; Βαθμολογία: 2px;
Δείτε τη δημιουργία μιας εφαρμογής Facebook για πληροφορίες σχετικά με τη ρύθμιση της εφαρμογής σας στο Facebook και την εύρεση της εφαρμογής μυστικό.
Το Facebook χρησιμοποιεί το MongoDB?
Э э э э э э э э э э э э э э э э э э э э э э э э э э э э э э э э э э
Ы з з з з з з з и и и и п п п п п п з п з з з з з з з з з п. С п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п. ПOчем э э э э э э э э э э э п п п п п п п?
Э э э э э а а а а и е е з з л л л л л л л э э э э э э э э э э э э Κοιτάζοντας το ριμπάγ. С с п п п п п э э э э э э э э э э э э э э э э э э э э э э э э э э э э. Д э э э э д д д и и д д д ρίας н и д д д д д д д д д д д д д д д д д д д д д д д д д д д д д д д д д д д.
И и з а а а а а а а а ы ы з .. Е е е е д п п ж ж ж ж ж ж ж ж ж ж ж ж ж ж ж ж ж ж п п п п п п п п п п п п п п п п п. Орrρά. Пороннαι.
ПON п п е е а а τροφή пρέφ а а а а а τροφήλου. е е е и τροφή ее же жÉ в в ж и и и и ч ч.
Ο έλεγχος ταυτότητας στο Facebook
Ο πάροχος ελέγχου ταυτότητας στο Facebook επιτρέπει στους χρήστες να συνδεθούν με τον υπάρχοντα λογαριασμό τους στο Facebook μέσω μιας εφαρμογής Facebook Companion Facebook. Όταν ένας χρήστης συνδεθεί, το Facebook παρέχει υπηρεσίες εφαρμογών Atlas με OAuth 2.0 πρόσβαση για τον χρήστη. Οι υπηρεσίες εφαρμογών χρησιμοποιούν το διακριτικό για να προσδιορίσουν τον χρήστη και να έχουν πρόσβαση σε εγκεκριμένα δεδομένα από το API Facebook για λογαριασμό τους. Για περισσότερες πληροφορίες σχετικά με τη σύνδεση στο Facebook, ανατρέξτε στο Facebook Login για εφαρμογές.
Το παρακάτω διάγραμμα δείχνει τη ροή λογικής OAuth:
Διαμόρφωση
Ο πάροχος ελέγχου ταυτότητας στο Facebook έχει τις ακόλουθες επιλογές διαμόρφωσης:
Περιγραφή
παραμέτρων.ταυτότητα πελάτη
Απαιτείται. Το αναγνωριστικό εφαρμογής της εφαρμογής Facebook.
Δείτε τη δημιουργία μιας εφαρμογής Facebook για πληροφορίες σχετικά με τη ρύθμιση της εφαρμογής σας στο Facebook και την εύρεση του αναγνωριστικού της εφαρμογής.
Μυστικός πελάτης
secret_config.πελατών
Απαιτείται. Το όνομα ενός μυστικού που αποθηκεύει την εφαρμογή μυστικό της εφαρμογής Facebook.
Δείτε τη δημιουργία μιας εφαρμογής Facebook για πληροφορίες σχετικά με τη ρύθμιση της εφαρμογής σας στο Facebook και την εύρεση της εφαρμογής μυστικό.
Πεδία μεταδεδομένων
metadata_fields
Προαιρετικός. Μια λίστα πεδίων που περιγράφουν τον πιστοποιημένο χρήστη ότι η εφαρμογή σας θα ζητήσει από το API Graph Facebook.
Όλα τα πεδία μεταδεδομένων παραλείπονται από προεπιλογή και μπορούν να απαιτηθούν σε βάση πεδίου ανά πεδίο. Οι χρήστες πρέπει να παρέχουν ρητά την άδεια της εφαρμογής σας για πρόσβαση σε κάθε απαιτούμενο πεδίο. Εάν απαιτείται ένα πεδίο μεταδεδομένων και υπάρχει για έναν συγκεκριμένο χρήστη, θα συμπεριληφθεί στο αντικείμενο χρήστη του.
Για να απαιτήσετε ένα πεδίο μεταδεδομένων από ένα αρχείο διαμόρφωσης εισαγωγής/εξαγωγής, προσθέστε μια καταχώρηση για το πεδίο στη συστοιχία metadata_fields. Κάθε καταχώρηση πρέπει να είναι ένα έγγραφο της ακόλουθες φόρμες:
"" , ""
Βάση δεδομένων χρήστη του Facebook – Είναι SQL ή NOSQL?
Αναρωτηθήκατε ποτέ ποια βάση δεδομένων Facebook (FB) χρησιμοποιεί για την αποθήκευση των προφίλ των 2 του.3b+ χρήστες? Είναι SQL ή NOSQL? Πώς εξελίχθηκε η αρχιτεκτονική βάσης δεδομένων FB τα τελευταία 15 χρόνια? Ως μηχανικός στην ομάδα υποδομής βάσης δεδομένων FB από το 2007 έως το 2013, είχα ένα κάθισμα πρώτης γραμμής στην παρακολούθηση αυτής της εξέλιξης. Υπάρχουν ανεκτίμητα μαθήματα που πρέπει να μάθουμε με την καλύτερη κατανόηση της εξέλιξης της βάσης δεδομένων στο μεγαλύτερο κοινωνικό δίκτυο στον κόσμο, παρόλο που οι περισσότεροι από εμάς δεν θα αντιμετωπίζουν ακριβώς τις ίδιες προκλήσεις στο εγγύς μέλλον. Αυτό οφείλεται στο γεγονός ότι οι θεμελιώδεις αρχές που υποστηρίζουν την κλίμακα του Διαδικτύου της FB, παγκοσμίως διανεμημένη αρχιτεκτονική ισχύουν σήμερα για πολλές επιχειρηματικές εφαρμογές επιχειρήσεων, όπως το Multi-menant SaaS, ο κατάλογος λιανικών προϊόντων/ταμείο, οι κρατήσεις ταξιδιού και τα leaderboards τυχερών παιχνιδιών.
Αρχική αρχιτεκτονική
Όπως κάθε χρήστης της FB μπορεί εύκολα να καταλάβει, το προφίλ του/της δεν είναι απλώς μια λίστα χαρακτηριστικών όπως το όνομα, το ηλεκτρονικό ταχυδρομείο, τα ενδιαφέροντα και ούτω καθεξής. Είναι στην πραγματικότητα ένα πλούσιο κοινωνικό γράφημα που αποθηκεύει όλες τις σχέσεις φίλων/οικογενειακών σχέσεων, ομάδων, check-in, συμπαθειών, μετοχών και άλλων. Δεδομένης της ευελιξίας των μοντέλων δεδομένων του SQL και της πανταχού παρούσα MySQL όταν ξεκίνησε η FB, αυτό το κοινωνικό γράφημα κατασκευάστηκε αρχικά ως εφαρμογή PHP που τροφοδοτείται από την MySQL ως την επίμονη βάση δεδομένων και το Memcache ως μνήμη “lookaside”.
Αρχιτεκτονική της αρχικής βάσης δεδομένων του Facebook
Στο μοτίβο προσωρινής αποθήκευσης Lookaside, η εφαρμογή ζητά πρώτα δεδομένα από την προσωρινή μνήμη αντί της βάσης δεδομένων. Εάν τα δεδομένα δεν έχουν αποθηκευτεί προσωρινά, η εφαρμογή λαμβάνει τα δεδομένα από τη βάση δεδομένων υποστήριξης και το τοποθετεί στην προσωρινή μνήμη για επακόλουθες αναγνώσεις. Σημειώστε ότι η εφαρμογή PHP είχε πρόσβαση MySQL και Memcache απευθείας χωρίς κανένα στρώμα αφαίρεσης ενδιάμεσων δεδομένων.
Αυξανόμενοι πόνοι
Απώλεια ευελιξίας προγραμματιστών
Οι μηχανικοί έπρεπε να συνεργαστούν με δύο καταστήματα δεδομένων με δύο πολύ διαφορετικά μοντέλα δεδομένων: μια μεγάλη συλλογή MySQL
Facebook -134mg1q -webkit-align-self: center-ms-flex-item-align: κέντρο; Ευθυγράμμιση-Κέντρο; Επεξεργασία: 0 10px; Ορατότητα: Κρυμμένο. CSS-6vrlzm Border-Radius: 0! σπουδαίος; Εμφάνιση: Αρχική! σπουδαίος; Περιθώριο: Αρχικό! σπουδαίος;. CSS-1L4S55V περιθώριο-top-175px; θέση: απόλυτη; Βαθμολογία: 2px;
Δείτε τη δημιουργία μιας εφαρμογής Facebook για πληροφορίες σχετικά με τη ρύθμιση της εφαρμογής σας στο Facebook και την εύρεση της εφαρμογής μυστικό .
Το Facebook χρησιμοποιεί το MongoDB?
Э э э э э э э э э э э э э э э э э э э э э э э э э э э э э э э э э э
Ы з з з з з з з и и и и п п п п п п з п з з з з з з з з з п. С п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п п. ПOчем э э э э э э э э э э э п п п п п п п?
Э э э э э а а а а и е е з з л л л л л л л э э э э э э э э э э э э Κοιτάζοντας το ριμπάγ. С с п п п п п э э э э э э э э э э э э э э э э э э э э э э э э э э э э. Д э э э э д д д и и д д д ρίας н и д д д д д д д д д д д д д д д д д д д д д д д д д д д д д д д д д д д.
И и з а а а а а а а а ы ы з .. Е е е е д п п ж ж ж ж ж ж ж ж ж ж ж ж ж ж ж ж ж ж п п п п п п п п п п п п п п п п п. Орrρά. Пороннαι.
ПON п п е е а а τροφή пρέφ а а а а а τροφήλου. е е е и τροφή ее же жÉ в в ж и и и и ч ч.
Ο έλεγχος ταυτότητας στο Facebook
Ο πάροχος ελέγχου ταυτότητας στο Facebook επιτρέπει στους χρήστες να συνδεθούν με τον υπάρχοντα λογαριασμό τους στο Facebook μέσω μιας εφαρμογής Facebook Companion Facebook. Όταν ένας χρήστης συνδεθεί, το Facebook παρέχει υπηρεσίες εφαρμογών Atlas με OAuth 2.0 Σημαντικό πρόσβαση
για τον χρήστη. Οι υπηρεσίες εφαρμογών χρησιμοποιούν το διακριτικό για να προσδιορίσουν τον χρήστη και να έχουν πρόσβαση σε εγκεκριμένα δεδομένα από το API Facebook για λογαριασμό τους. Για περισσότερες πληροφορίες σχετικά με τη σύνδεση στο Facebook, ανατρέξτε στο Facebook Login για εφαρμογές
Το παρακάτω διάγραμμα δείχνει τη ροή λογικής OAuth:
Διαμόρφωση
Ο πάροχος ελέγχου ταυτότητας στο Facebook έχει τις ακόλουθες επιλογές διαμόρφωσης:
Περιγραφή
παραμέτρων.ταυτότητα πελάτη
Απαιτείται. Το αναγνωριστικό εφαρμογής της εφαρμογής Facebook.
Δείτε τη δημιουργία μιας εφαρμογής Facebook για πληροφορίες σχετικά με τη ρύθμιση της εφαρμογής σας στο Facebook και την εύρεση του αναγνωριστικού της εφαρμογής .
Μυστικός πελάτης
secret_config.πελατών
Απαιτείται. Το όνομα ενός μυστικού που αποθηκεύει την εφαρμογή μυστικό της εφαρμογής Facebook.
Δείτε τη δημιουργία μιας εφαρμογής Facebook για πληροφορίες σχετικά με τη ρύθμιση της εφαρμογής σας στο Facebook και την εύρεση της εφαρμογής μυστικό .
Πεδία μεταδεδομένων
metadata_fields
Προαιρετικός. Μια λίστα πεδίων που περιγράφουν τον πιστοποιημένο χρήστη ότι η εφαρμογή σας θα ζητήσει από το API Graph Facebook .
Όλα τα πεδία μεταδεδομένων παραλείπονται από προεπιλογή και μπορούν να απαιτηθούν σε βάση πεδίου ανά πεδίο. Οι χρήστες πρέπει να παρέχουν ρητά την άδεια της εφαρμογής σας για πρόσβαση σε κάθε απαιτούμενο πεδίο. Εάν απαιτείται ένα πεδίο μεταδεδομένων και υπάρχει για έναν συγκεκριμένο χρήστη, θα συμπεριληφθεί στο αντικείμενο χρήστη του.
Για να απαιτήσετε ένα πεδίο μεταδεδομένων από ένα αρχείο διαμόρφωσης εισαγωγής/εξαγωγής, προσθέστε μια καταχώρηση για το πεδίο στη συστοιχία metadata_fields. Κάθε καταχώρηση πρέπει να είναι ένα έγγραφο της ακόλουθες φόρμες:
< όνομα: "", απαιτείται: "" >
Facebook’S Βάση δεδομένων χρήστη – Είναι SQL ή NOSQL?
Αναρωτηθήκατε ποτέ ποια βάση δεδομένων Facebook (FB) χρησιμοποιεί για την αποθήκευση των προφίλ των 2 του.3b+ χρήστες? Είναι SQL ή NOSQL? Πώς εξελίχθηκε η αρχιτεκτονική βάσης δεδομένων FB τα τελευταία 15 χρόνια? Ως μηχανικός στην ομάδα υποδομής βάσης δεδομένων FB από το 2007 έως το 2013, είχα ένα κάθισμα πρώτης γραμμής στην παρακολούθηση αυτής της εξέλιξης. Υπάρχουν ανεκτίμητα μαθήματα που πρέπει να μάθουμε με την καλύτερη κατανόηση της εξέλιξης της βάσης δεδομένων στον κόσμο’Το μεγαλύτερο κοινωνικό δίκτυο, παρόλο που οι περισσότεροι από εμάς κέρδισαν’να αντιμετωπίζουμε ακριβώς τις ίδιες προκλήσεις στο εγγύς μέλλον. Αυτό οφείλεται στο γεγονός ότι οι θεμελιώδεις αρχές που υποστηρίζουν το FB’S Κλίμακα στο Διαδίκτυο, παγκοσμίως διανεμημένη αρχιτεκτονική ισχύει σήμερα σε πολλές επιχειρήσεις κρίσιμες επιχειρήσεις, όπως το SAAS πολλαπλών ενοικιαστών, ο κατάλογος λιανικών προϊόντων/ταμείο, οι ταξιδιωτικές κρατήσεις και τα leaderboards τυχερών παιχνιδιών.
Αρχική αρχιτεκτονική
Όπως κάθε χρήστης της FB μπορεί εύκολα να καταλάβει, το προφίλ του/της δεν είναι απλώς μια λίστα χαρακτηριστικών όπως το όνομα, το ηλεκτρονικό ταχυδρομείο, τα ενδιαφέροντα και ούτω καθεξής. Είναι στην πραγματικότητα ένα πλούσιο κοινωνικό γράφημα που αποθηκεύει όλες τις σχέσεις φίλων/οικογενειακών σχέσεων, ομάδων, check-in, συμπαθειών, μετοχών και άλλων. Δεδομένης της ευελιξίας μοντελοποίησης δεδομένων του SQL και της πανταχού παρούσα MySQL όταν ξεκίνησε η FB, αυτό το κοινωνικό γράφημα κατασκευάστηκε αρχικά ως εφαρμογή PHP που τροφοδοτείται από την MySQL ως την επίμονη βάση δεδομένων και το Memcache ως a “κονσάντι” κρύπτη.
Facebook’S αρχική αρχιτεκτονική βάσης δεδομένων
Στο μοτίβο προσωρινής αποθήκευσης Lookaside, η εφαρμογή ζητά πρώτα δεδομένα από την προσωρινή μνήμη αντί της βάσης δεδομένων. Εάν τα δεδομένα δεν έχουν αποθηκευτεί προσωρινά, η εφαρμογή λαμβάνει τα δεδομένα από τη βάση δεδομένων υποστήριξης και το τοποθετεί στην προσωρινή μνήμη για επακόλουθες αναγνώσεις. Σημειώστε ότι η εφαρμογή PHP είχε πρόσβαση MySQL και Memcache απευθείας χωρίς κανένα στρώμα αφαίρεσης ενδιάμεσων δεδομένων.
Αυξανόμενοι πόνοι
FB’S Μετεωτική επιτυχία από το 2005 και μετά έβαλε τεράστια πίεση στην απλοϊκή αρχιτεκτονική βάσης δεδομένων που επισημάνθηκε στην προηγούμενη ενότητα. Ακολουθούσαν μερικοί από τους αυξανόμενους πόνους που έπρεπε να λύσουν οι μηχανικοί της FB σε σύντομο χρονικό διάστημα.
Απώλεια ευελιξίας προγραμματιστών
Οι μηχανικοί έπρεπε να συνεργαστούν με δύο καταστήματα δεδομένων με δύο πολύ διαφορετικά μοντέλα δεδομένων: μια μεγάλη συλλογή από ζευγάρια MySQL master-slave για την αποθήκευση δεδομένων επίμονα σε σχεσιακούς πίνακες και μια εξίσου μεγάλη συλλογή διακομιστών Memcach. Η συνεργασία με το επίπεδο της βάσης δεδομένων τώρα εντοπίστηκε για πρώτη φορά να αποκτήσει περίπλοκη γνώση του τρόπου με τον οποίο τα δύο καταστήματα εργάστηκαν σε συνδυασμό μεταξύ τους. Το καθαρό αποτέλεσμα ήταν η απώλεια στην ευελιξία των προγραμματιστών.
Βάση δεδομένων σε επίπεδο εφαρμογής
Η αδυναμία του MySQL να κλιμακώσει τα αιτήματα εγγραφής πέρα από έναν κόμβο έγινε πρόβλημα δολοφόνων, καθώς οι όγκοι δεδομένων αυξήθηκαν με άλματα και όρια. Mysql’η μονολιθική αρχιτεκτονική ουσιαστικά αναγκάστηκε πολύ νωρίς σε επίπεδο εφαρμογής. Αυτό σήμαινε ότι η εφαρμογή παρακολούθησε τώρα ποια παρουσία MySQL είναι υπεύθυνη για την αποθήκευση του χρήστη’προφίλ. Η ανάπτυξη και η επιχειρησιακή πολυπλοκότητα αυξάνονται εκθετικά όταν ο αριθμός τέτοιων περιπτώσεων αυξάνεται από 1 έως 100 και στη συνέχεια εκραγεί σε 1000s. Σημειώστε ότι η προσκόλληση σε μια τέτοια αρχιτεκτονική σήμαινε ότι η εφαρμογή δεν χρησιμοποιεί πλέον τη βάση δεδομένων για να εκτελέσει τυχόν διασταυρούμενες συνδέσεις και συναλλαγές, παραιτώντας έτσι την πλήρη ισχύ του SQL (ως εύκαμπτη γλώσσα ερωτήματος) προκειμένου να κλιμακωθεί οριζόντια.
Multi-datacenter, γεωγραφική αναπαραγωγή
Η διαχείριση των αποτυχιών του Datacenter έγινε επίσης μια κρίσιμη ανησυχία που σήμαινε την αποθήκευση των σκλάβων MySQL (και των αντίστοιχων περιπτώσεων Memcache) σε πολλαπλά γεωγραφικά δεδομένα δεδομένων. Η τελειοποίηση και η επιχειρησιακή αποτυχία δεν ήταν εύκολο κατόρθωμα από μόνη της, αλλά δεδομένης της ασύγχρονης αντιγραφής του κύριου σκλάβου, τα πρόσφατα αφοσιωμένα δεδομένα θα εξακολουθούσαν να λείπουν όποτε αναλήφθηκε μια τέτοια αποτυχία.
Απώλεια συνέπειας μεταξύ της προσωρινής μνήμης & DB
Το Memcache μπροστά από έναν σκλάβο απομακρυσμένης περιφέρειας MySQL δεν μπορεί αμέσως να υπηρετήσει έντονα (aka read-after-write) συνεπής ανάγνωση λόγω της ασύγχρονης αντιγραφής μεταξύ του Master και του Slave. Και, οι προκύπτουσες αναφορές στην απομακρυσμένη περιοχή μπορεί εύκολα να οδηγήσουν σε σύγχυση χρήστες. μι.σολ. Ένα αίτημα φιλίας μπορεί να εμφανιστεί ως αποδεκτή σε έναν φίλο ενώ εμφανίζεται ως ακόμα εκκρεμείς στο άλλο.
Εισαγάγετε το Tao, ένα API γραφήματος NOSQL στο Sharded SQL
Στις αρχές του 2009, η FB άρχισε να κατασκευάζει το Tao, ένα API γραφήματος NOSQL ειδικού για το FB που κατασκευάστηκε για να τρέξει σε Sharded MySQL. Ο στόχος ήταν να λύσουμε τα προβλήματα που επισημάνθηκαν στην προηγούμενη ενότητα. Το Tao αντιπροσωπεύει “Οι ενώσεις και τα αντικείμενα”. Παρόλο που ο σχεδιασμός για το TAO δημοσιεύθηκε για πρώτη φορά ως έγγραφο το 2013, η εφαρμογή για το TAO δεν ήταν ποτέ ανοιχτή, δεδομένης της ιδιόκτητης φύσης του κοινωνικού γραφήματος της FB.
Το TAO αντιπροσώπευε τα στοιχεία δεδομένων ως κόμβους (αντικείμενα) και τις σχέσεις μεταξύ τους ως άκρες (ενώσεις). Οι προγραμματιστές εφαρμογών FB αγαπούσαν το API επειδή θα μπορούσαν τώρα να διαχειριστούν εύκολα ενημερώσεις βάσης δεδομένων και ερωτήματα που είναι απαραίτητα για τη λογική εφαρμογής τους χωρίς άμεση γνώση της MySQL ή ακόμα και του Memcache.
Αρχιτεκτονική
Όπως φαίνεται στο παρακάτω σχήμα, το Tao ουσιαστικά μετατράπηκε FB’S υπάρχοντα 1000s από χειροκίνητα ζεύγη mysql master-slave ζεύγη σε ένα εξαιρετικά κλιμακωτό, αυτόματο, γεωγραφικό σύμπλεγμα βάσεων δεδομένων. Όλα τα αντικείμενα και οι συσχετίσεις στο ίδιο θραύσμα αποθηκεύονται επίμονα στην ίδια περίπτωση MySQL και αποθηκεύονται στο ίδιο σύνολο διακομιστών σε κάθε cathing cluster. Η τοποθέτηση μεμονωμένων αντικειμένων και ενώσεων μπορεί να κατευθύνεται σε συγκεκριμένα κομμάτια κατά τη δημιουργία του χρόνου όταν χρειάζεται. Ο έλεγχος του βαθμού συνεγκατάστασης των δεδομένων αποδείχθηκε μια σημαντική τεχνική βελτιστοποίησης για την παροχή πρόσβασης χαμηλής καθυστέρησης δεδομένων.
Τα πρότυπα πρόσβασης που βασίζονται σε SQL, όπως οι συναλλαγές και οι συνδέσεις με διασταυρούμενη σκιά. Ωστόσο, υποστήριξε τη μη ατομική διπλάσια γραφή στο πλαίσιο μιας ενημέρωσης σύνδεσης (των οποίων τα δύο αντικείμενα μπορεί να βρίσκονται σε δύο διαφορετικά κομμάτια). Σε περίπτωση αποτυχιών μετά από μια ενημέρωση shard αλλά πριν από τη δεύτερη ενημέρωση Shard, μια ασύγχρονη εργασία επισκευής θα καθαρίσει το “κρέμασμα” Σύνδεσμος αργότερα.
Τα θραύσματα μπορούν να μεταναστεύσουν ή να κλωνοποιηθούν σε διαφορετικό διακομιστή στο ίδιο σύμπλεγμα για να εξισορροπήσουν το φορτίο και να εξομαλύνουν τις αιχμές φόρτωσης. Οι αιχμές φόρτωσης ήταν κοινά και συνέβησαν όταν μια χούφτα αντικειμένων ή ενώσεων γίνονται εξαιρετικά δημοφιλείς καθώς εμφανίζονται στις ειδήσεις των δεκάδων εκατομμυρίων χρηστών ταυτόχρονα.
Υπάρχει μια λύση επιχείρησης γενικού σκοπού?
Η FB δεν είχε άλλη επιλογή παρά να κλιμακώσει μαζικά το στρώμα βάσης δεδομένων MySQL υπεύθυνο για τον χρήστη του’κοινωνικό γράφημα. Ούτε η MySQL ούτε οι άλλες διαθέσιμες βάσεις δεδομένων SQL θα μπορούσαν να λύσουν αυτό το πρόβλημα μόνοι τους. Έτσι, η FB χρησιμοποίησε τη σημαντική μηχανική της για να δημιουργήσει ουσιαστικά ένα προσαρμοσμένο στρώμα ερωτήματος βάσεων δεδομένων που αφαίρεσε τις υποκείμενες βάσεις δεδομένων MySQL. Με αυτόν τον τρόπο, ανάγκασε τους προγραμματιστές της να εγκαταλείψουν εντελώς το SQL ως ένα εύκαμπτο API ερωτήματος και να υιοθετήσουν το TAO’S Προσαρμοσμένο NOSQL API.
Οι περισσότεροι από εμάς στον κόσμο των επιχειρήσεων δεν έχουν προβλήματα κλίμακας στο facebook, αλλά θέλουν να αυξήσουν τις βάσεις δεδομένων SQL κατά παραγγελία. Αγαπάμε το SQL για την ευελιξία και την πανταχού παρούσα, πράγμα που σημαίνει ότι θέλουμε να κλιμακώσουμε χωρίς να εγκαταλείψουμε το SQL. Υπάρχει λύση γενικού σκοπού για επιχειρήσεις όπως εμείς? Η απάντηση είναι ναι!
Γεια σας διανεμημένο SQL!
Οι μονολιθικές βάσεις δεδομένων SQL προσπαθούν για 10+ χρόνια να διανεμηθούν για να λύσουν το πρόβλημα της οριζόντιας κλιμάκωσης. Οπως και “Αύξηση παγκοσμίως κατανεμημένων βάσεων δεδομένων SQL” Τα κυριότερα σημεία, το πρώτο κύμα τέτοιων βάσεων δεδομένων ονομάστηκαν NewsQL και περιελάμβαναν βάσεις δεδομένων όπως το Clustrix, το NUODB, το Citus και το Vitess. Αυτά είχαν περιορισμένη επιτυχία στην εκτόπιση των βάσεων δεδομένων SQL με το χέρι. Ο λόγος είναι ότι η νέα τιμή που δημιουργήθηκε δεν αρκεί για να απλοποιήσει ριζικά τον προγραμματιστή και την εμπειρία των επιχειρήσεων. Clustrix και NuODB Madate Ειδική, εξαιρετικά αξιόπιστη, χαμηλή λανθάνουσα υποδομή Datacenter – Η σύγχρονη μητρική υποδομή φαίνεται ακριβώς το αντίθετο. Η Citus και η Vitess απλοποιούν την εμπειρία των λειτουργιών σε ένα βαθμό με αυτόματη βλάβη της βάσης δεδομένων, αλλά στη συνέχεια μειονέκτημα τον προγραμματιστή, χωρίς να του δώσουν μία λογική κατανεμημένη βάση δεδομένων SQL.
Βρισκόμαστε τώρα στη δεύτερη γενιά κατανεμημένων βάσεων δεδομένων SQL, όπου η μαζική επεκτασιμότητα και η παγκόσμια διανομή δεδομένων ενσωματώνονται στο στρώμα βάσης δεδομένων σε αντίθεση με 10 χρόνια πίσω όταν το Facebook έπρεπε να κατασκευάσει αυτά τα χαρακτηριστικά στο στρώμα εφαρμογής.
Εμπνευσμένο από το Google Spanner
Ενώ η FB κατασκευάστηκε Tao, η Google κατασκευάζει το Spanner, μια εντελώς νέα παγκοσμίως συνειδητή βάση δεδομένων για την επίλυση πολύ παρόμοιων προκλήσεων. Αγγλικό κλειδί’Το μοντέλο δεδομένων S ήταν λιγότερο από ένα κοινωνικό γράφημα, αλλά περισσότερο από ένα παραδοσιακό φόρτο εργασίας OLTP τυχαίας πρόσβασης που διαχειρίζεται το Google’οι χρήστες, οι οργανώσεις πελατών, οι πιστώσεις του AdWords, οι προτιμήσεις Gmail και άλλα. Το Spanner εισήχθη για πρώτη φορά στον κόσμο με τη μορφή χαρτιού σχεδιασμού το 2012. Ξεκίνησε το 2007 ως κατάστημα συναλλαγών κλειδιών-τιμών, αλλά στη συνέχεια εξελίχθηκε σε βάση δεδομένων SQL. Η μετατόπιση στο SQL ως η μόνη γλώσσα πελάτη επιταχύνθηκε καθώς οι μηχανικοί της Google συνειδητοποίησαν ότι η SQL έχει όλα τα σωστά κατασκευάσματα για την ανάπτυξη της Agile App, ειδικά στην εποχή του Cloud, όπου η υποδομή είναι πολύ πιο δυναμική και επιρρεπής σε αποτυχία από τα εξαιρετικά αξιόπιστα ιδιωτικά δεδομένα του παρελθόντος. Σήμερα, πολλές σύγχρονες βάσεις δεδομένων (συμπεριλαμβανομένου του YuGabytedB).
Διαχείριση του όγκου δεδομένων σε κλίμακα στο διαδίκτυο με ευκολία
Το Sharding είναι εντελώς αυτόματο στην αρχιτεκτονική του κλειδιού. Επιπλέον, τα θραύσματα γίνονται αυτόματα ισορροπημένα σε όλους τους διαθέσιμους κόμβους, καθώς προστίθενται νέοι κόμβοι ή απομακρύνονται οι υπάρχοντες κόμβοι. Οι μικροεπιχειρήσεις που χρειάζονται τεράστια κλιμάκωση μπορούν τώρα να βασίζονται στη βάση δεδομένων απευθείας, σε αντίθεση με την προσθήκη νέων στρωμάτων υποδομής παρόμοια με αυτά που είδαμε στην αρχιτεκτονική της FB. Δεν υπάρχει ανάγκη για μνήμη προσωρινής μνήμης στη μνήμη (που εκφορτώνει αιτήματα ανάγνωσης από τη βάση δεδομένων με αποτέλεσμα να το απελευθερώνει για την εξυπηρέτηση αιτήσεων εγγραφής) και επίσης δεν χρειάζεται ένα στρώμα εφαρμογής που μοιάζει με TAO που κάνει τη διαχείριση Shard που κάνει το Shard Management.
Ακραία ανθεκτικότητα έναντι αποτυχιών
Μια βασική διαφορά μεταξύ του κλειδιού και των παλαιότερων βάσεων δεδομένων NewsQL που εξετάσαμε στην προηγούμενη ενότητα είναι το Spanner’S Χρήση της κατανεμημένης συναίνεσης για να εξασφαλιστεί ότι κάθε θραύση (και όχι απλώς κάθε εμφάνιση) παραμένει ιδιαίτερα διαθέσιμη παρουσία αποτυχιών. Παρόμοια με το TAO, οι αποτυχίες της υποδομής επηρεάζουν πάντα μόνο ένα υποσύνολο δεδομένων (μόνο εκείνα τα κομμάτια των οποίων οι ηγέτες χωρίζονται μακριά) και ποτέ ολόκληρο το σύμπλεγμα. Και, δεδομένης της ικανότητας των υπόλοιπων αντιγράφων Shard να εκλεγούν αυτόματα σε δευτερόλεπτα, το σύμπλεγμα παρουσιάζει αυτο-θεραπευτικά χαρακτηριστικά όταν υποβάλλονται σε αποτυχίες. Η εφαρμογή παραμένει διαφανής σε αυτές τις αλλαγές cluster config και συνεχίζει να λειτουργεί κανονικά χωρίς διακοπές ή επιβραδύνσεις.
Απρόσκοπτη αναπαραγωγή σε όλο τον κόσμο
Το πλεονέκτημα μιας αρχιτεκτονικής βάσης δεδομένων παγκοσμίως είναι ότι οι μικροεπιχειρήσεις που χρειάζονται απολύτως σωστά δεδομένα σε σενάρια πολλαπλών ζωνών και πολλαπλών περιφερειών μπορούν τελικά να βασίζονται στη βάση δεδομένων απευθείας. Οι συγκρούσεις και η απώλεια δεδομένων που παρατηρούνται σε τυπικές αναπτύξεις πολλαπλών κυρίου του παρελθόντος δεν εμφανίζονται. Χαρακτηριστικά όπως το επιτραπέζιο επίπεδο και το σε επίπεδο γεωγραφικής γραμμής, εξασφαλίζουν ότι τα δεδομένα που σχετίζονται με την τοπική περιοχή παραμένουν οδηγημένα στην ίδια περιοχή. Αυτό εξασφαλίζει ότι η έντονα συνεπής διαδρομή ανάγνωσης δεν προκαλεί ποτέ διασταυρωμένη περιφέρεια/λανθάνουσα κατάσταση.
Πλήρης ισχύς συναλλαγών SQL και κατανεμημένων οξέων
Σε αντίθεση με τις βάσεις δεδομένων NewsQL Legacy, οι συναλλαγές SQL και οξέος στην πλήρη μορφή τους μπορούν να υποστηριχθούν στην αρχιτεκτονική του κλειδιού. Οι λειτουργίες ενός κλειδιού είναι από προεπιλογή έντονα συνεπείς και συναλλακτικές (ο τεχνικός όρος είναι γραμμικός). Οι συναλλαγές μεμονωμένου κόμβου εξ ορισμού οδηγούνται σε ένα ενιαίο θραύσμα και επομένως μπορούν να διαπραχθούν χωρίς τη χρήση ενός διαχειριστή συναλλαγών που είναι κατανεμημένος. Οι συναλλαγές οξέος πολλαπλών στροφών (aka Distributed) περιλαμβάνουν μια δέσμευση 2 φάσης χρησιμοποιώντας έναν διαχειριστή διανεμημένης συναλλαγής που παρακολουθεί επίσης τα λοξά ρολόι σε όλους τους κόμβους. Οι συνδέσεις πολλαπλών στροφών αντιμετωπίζονται επίσης με την αναζήτηση δεδομένων σε όλους τους κόμβους. Το κλειδί εδώ είναι ότι όλες οι λειτουργίες πρόσβασης δεδομένων είναι διαφανείς από τον προγραμματιστή που απλώς χρησιμοποιεί κανονικά κατασκευάσματα SQL για να αλληλεπιδράσει με τη βάση δεδομένων.
Περίληψη
Οι ιστορίες κλιμάκωσης υποδομών δεδομένων σε οποιονδήποτε από τους τεχνολογικούς γίγαντες, συμπεριλαμβανομένου του FB και της Google, δημιουργούν μεγάλη μάθηση μηχανικής. Στο FB, πήραμε το μονοπάτι της οικοδόμησης Tao που μας επέτρεψε να διατηρήσουμε την υπάρχουσα επένδυσή μας σε Sharded MySQL. Οι μηχανικοί εφαρμογών μας έχασαν τη δυνατότητα να χρησιμοποιούν το SQL αλλά κέρδισαν μια δέσμη άλλων παροχών. Οι μηχανικοί της Google αντιμετώπισαν παρόμοιες προκλήσεις, αλλά επέλεξαν διαφορετικό μονοπάτι δημιουργώντας το Spanner, μια εντελώς νέα βάση δεδομένων SQL που μπορεί να κλιμακωθεί οριζόντια, απρόσκοπτα γεωγραφική και εύκολη ανεκτικότητα αποτυχιών. Το FB και η Google είναι και οι δύο απίστευτες ιστορίες επιτυχίας, οπότε δεν μπορούμε να πούμε ότι ένα μονοπάτι ήταν καλύτερο από το άλλο. Ωστόσο, όταν επεκτείνουμε τον ορίζοντα σε αρχιτεκτονικές επιχειρήσεων γενικής χρήσης, το spanner έρχεται μπροστά από το Tao, λόγω όλων των λόγων που επισημαίνονται σε αυτήν την ανάρτηση. Δημιουργία YuGabytedB’S Storage Store on the Spanner Architecture, πιστεύουμε ότι μπορούμε να φέρουμε την ευελιξία των προγραμματιστών των τεχνολογικών γίγαντες στις επιχειρήσεις του σήμερα.
Ενημερώθηκε τον Μάρτιο του 2019.
Τι’το επόμενο?
- Συγκρίνετε το yugabytedb σε βάθος σε βάσεις δεδομένων όπως το CockroachDB, το Google Cloud Spanner και το MongoDB.
- Ξεκινήστε με το YuGABYTEDB σε macos, linux, docker και kubernetes.
- Επικοινωνήστε μαζί μας για να μάθετε περισσότερα σχετικά με την αδειοδότηση, την τιμολόγηση ή για να προγραμματίσετε μια τεχνική επισκόπηση.
Συνδέω-συωδεομαι
Οι οδηγοί του Facebook
στο MongoDB
Αφού πραγματοποιήσουμε την ενσωμάτωση με το MongoDB, θα είναι διαθέσιμες οι ακόλουθες επιλογές: έχετε τώρα τη δυνατότητα να αυτοματοποιήσετε τη μεταφορά των οδηγών από το Facebook στο MongoDB. Κάνοντας αυτό, μπορείτε να αυτοματοποιήσετε τις επιχειρηματικές σας διαδικασίες και να εξοικονομήσετε χρόνο.
Ψηφίστε για να δημιουργήσετε μια ολοκλήρωση με το MongoDB
Ο συγχρονισμός Facebook οδηγεί στο MongoDB
Θέλετε να μεταφέρετε αυτόματα τους οδηγούς από το Facebook? Προς το παρόν δεν έχουμε έτοιμη ενσωμάτωση με το MongoDB, αλλά οι προγραμματιστές μας εργάζονται σε αυτήν την ολοκλήρωση.
Αφού ολοκληρώσουμε την ολοκλήρωση, δεν θα χρειαστεί να κατεβάσετε με μη αυτόματο τρόπο τους οδηγούς από το Facebook στο MongoDB. Το σύστημά μας θα ελέγξει για νέους οδηγούς 24 ώρες την ημέρα, 7 ημέρες την εβδομάδα. Χωρίς μέρες και διακοπές.
Ερχομαι συντομα
Ενσωματώστε σε 1 κλικ
Η ενσωμάτωση του Facebook οδηγεί διαφημίσεις με το MongoDB
Πώς θα λειτουργήσει?
- Το Savemyleads παρακολουθεί συνεχώς πληροφορίες σχετικά με νέους οδηγούς στο Facebook
- Μόλις εμφανιστεί ένας νέος οδηγός, η υπηρεσία μας θα λάβει αυτόματα όλα τα δεδομένα σχετικά με το μόλυβδο και θα τα μεταφέρει στο MongoDB.
Τι χρειάζεστε για να ξεκινήσετε?
- Συνδέστε τον λογαριασμό διαφημίσεων στο Facebook
- Συνδέστε το λογαριασμό MongoDB
- Ενεργοποιήστε τη μεταφορά οδηγών από το Facebook στο MongoDB
Ψηφίστε την ολοκλήρωση με το MongoDB. Όσο περισσότερες ψήφοι, τόσο πιο γρήγορα θα κάνουμε την ολοκλήρωση. Το έντυπο ψηφοφορίας βρίσκεται στην κορυφή της σελίδας.
Ε & Α Σχετικά με το Connect & Sync Facebook οδηγεί με το MongoDB
Πώς να ενσωματώσετε το Facebook Leads και το MongoDB?
Αφού ολοκληρώσουμε την ολοκλήρωση:
- Πρέπει να εγγραφείτε σε savemyleads
- Επιλέξτε ποια δεδομένα θα μεταφέρετε από το Facebook στο MongoDB
- Ενεργοποιήστε την αυτόματη ενημέρωση
- Τώρα τα δεδομένα θα μεταφερθούν αυτόματα από το Facebook στο MongoDB
Πόσος χρόνος χρειάζεται για την ενσωμάτωση του Facebook οδηγεί στο MongoDB?
Ανάλογα με το σύστημα με το οποίο θα ενσωματώσετε, ο χρόνος εγκατάστασης μπορεί να ποικίλει και κυμαίνεται από 5 έως 30 λεπτά. Κατά μέσο όρο, η εγκατάσταση διαρκεί 10-15 λεπτά.
Πόσο κοστίζει η ενσωμάτωση του Facebook με το MongoDB?
Προσφέρουμε σχέδια για διαφορετικούς όγκους εργασιών. μεταβείτε στο “Τιμολόγηση” Τμήμα και επιλέξτε το σύνολο λειτουργικότητας που ταιριάζει καλύτερα στις ανάγκες σας. Επιπλέον, έχετε την ευκαιρία να δοκιμάσετε την υπηρεσία δωρεάν για 14 ημέρες.
Πόσες υπηρεσίες έτοιμες για ενσωμάτωση και αποστολή οδηγών από το FB?
Θα έχουμε έτοιμες 40+ ενσωματώσεις.
Τι είναι το MongoDB?
Το MongoDB είναι ένα σύστημα διαχείρισης βάσεων δεδομένων. Δεν απαιτεί περιγραφή του σχήματος πίνακα και είναι ένα κλασικό παράδειγμα ενός συστήματος NOSQL. Η πλατφόρμα είναι γραμμένη στο γ ++. Χρησιμοποιείται στον προγραμματισμό, υποστηρίζει ad-hoc αιτήματα. Εφαρμόζει μια αναζήτηση μεταξύ κανονικών εκφράσεων και μπορείτε επίσης να προσαρμόσετε τα ερωτήματα για να επιστρέψετε τυχαία σύνολα αποτελεσμάτων. Υποστηρίζει ευρετήρια και ξέρει πώς να δουλεύει με σύνολα ρεπλίκα, δηλαδή, μπορείτε να εξοικονομήσετε 2 ή περισσότερα αντίγραφα δεδομένων σε διαφορετικούς κόμβους. Κάθε αντίγραφο μπορεί να λειτουργήσει ως πρωτογενές ή δευτερεύον αντίγραφο. Διαβάστε οι συγγραφείς που γίνονται από το κύριο αντίγραφο. Οι βοηθοί διατηρούν τα δεδομένα ενημερωμένα. Εάν το κύριο αντίγραφο δεν λειτουργεί, το σύστημα επιλέγει ποιο αντίγραφο γίνεται ο κύριος.
Η κλιμάκωση του συστήματος είναι οριζόντια σύμφωνα με τους κανόνες για την κατάτμηση των βάσεων δεδομένων με διανομή σε μέρη σε διαφορετικούς κόμβους του συμπλέγματος. Το κλειδί εξομοίωσης καθορίζεται από τον διαχειριστή, καθώς και από το κριτήριο σύμφωνα με το οποίο τα δεδομένα θα εξαπλωθούν γύρω από τις γωνίες. Το φορτίο είναι ισορροπημένο επειδή τα αιτήματα μπορούν να γίνουν αποδεκτά από όλους τους κόμβους του συμπλέγματος. Το MongoDB μπορεί να χρησιμοποιηθεί για την αποθήκευση αρχείων. Το σύστημα χωρίζει τα αρχεία σε εξαρτήματα και αποθηκεύει το καθένα από αυτά ως ανεξάρτητο έγγραφο.
Από το 2018, η έκδοση 4 έχει προσθέσει υποστήριξη για συναλλαγές που πληρούν τους κανονισμούς οξέος. Οι επίσημοι οδηγοί παρέχονται για όλες τις σημαντικές γλώσσες προγραμματισμού. Επίσης, έχει αναπτυχθεί ένας τεράστιος αριθμός ανεπίσημων οδηγών, οι οποίοι απελευθερώνονται από τρίτους προγραμματιστές. Υποστηρίζονται από την κοινότητα και μπορούν να χρησιμοποιηθούν για άλλες γλώσσες και πλαίσια. Η διεπαφή βάσης δεδομένων παρέχεται από το περιτύλιγμα MongoDB, αλλά όλες οι εκδόσεις άνω του 3ου έλαβαν Compass MongoDB.
Εάν θέλετε να συνδέσετε, να ενσωματώσετε ή να συγχρονίσετε τις διαφημίσεις Facebook με το MongoDB – Sing Up Now και σε 5 λεπτά νέοι οδηγοί θα σταλούν αυτόματα στο MongoDB. Δοκιμάστε μια δωρεάν δοκιμή!