ΘΩΜΑΣ Carriero: Είμαι Thomas Carriero. Είμαι μηχανικός λογισμικού στο Dropbox. ALEX ALLAIN: Είμαι Alex Allain. Είμαι μηχανικός εδώ στο Dropbox. ΘΩΜΑΣ Carriero: Ναι, ήμουν στην πραγματικότητα η πρώτη TF το κεφάλι για CS50 όταν ο David Malin ανέλαβε την τάξη. Είχα ήδη διδασκαλία CS50 για δύο εξάμηνα με τον Mike Smith, ο οποίος ήταν η προηγούμενη καθηγητής εκεί. ALEX ALLAIN: Γι 'αυτό πραγματικά δεν το έκανε λαμβάνουν CS50, αλλά το έκανα TF δύο φορές. Μόλις η τακτική TF, και στη συνέχεια το ανώτερο έτος μου Ήμουν πραγματικά το κεφάλι του TF CS50, η οποία ήταν πολύ διασκεδαστικό. ΘΩΜΑΣ Carriero: Έτσι όταν ο Δαβίδ άπλωσε για μένα για τη δημιουργία Dropbox στη συσκευή CS50, Ήμουν πραγματικά ενθουσιασμένος, γιατί έχουμε πραγματικά έναν πελάτη Linux, έτσι οι περισσότεροι από τους χρήστες μας χρησιμοποιούν είτε Windows ή οι πελάτες Macintosh, αλλά το Linux, Macintosh και Windows πελάτες είναι όλα στην πραγματικότητα πολύ παρόμοια. Έτσι, αυτό που κάναμε είναι ότι προ-εγκατεστημένο ο πελάτης Dropbox Linux στο CS50 συσκευής, και τρέχει ακριβώς όπως το σύνολο των χρηστών του Linux μας. ALEX ALLAIN: Έτσι, η τρόπο Dropbox λειτουργεί είναι τρέχει ως πελάτης σε πολλά διαφορετικά λειτουργικών συστημάτων και συσκευών. Η επιφάνεια εργασίας του πελάτη Dropbox είναι ένα από τα πιο γνωστά, και μία από τις πιο ενδιαφέρουσες. ΘΩΜΑΣ Carriero: Έτσι Dropbox βασικά παίρνει όλα τα αρχεία ότι θα βάλετε στο φάκελο και κομμάτια αυτά τα αρχεία σε κομμάτια τεσσάρων megabyte. Έτσι θα ρίξουμε μια 100 megabyte Αρχείο PDF και θα Είναι κομμάτι σε 25 κομμάτια τεσσάρων megabyte. Αυτά τα κομμάτια, στη συνέχεια, μυστικές και τότε μπορούμε να τα στείλετε σε servers μπλοκ μας. ALEX ALLAIN: Οι servers μπλοκ είναι η αποθήκευση των ίδιων των μπλοκ, και έτσι κάθε μπλοκ αποθηκεύεται σε ο διακομιστής μπλοκ με τα δεδομένα και Shaw 356 hash αυτού του μπλοκ. Αυτό είναι ένα πολύ βασικό κρυπτογράφησης πρωτόγονη που συνοψίζει, κατά κάποιο τρόπο, τα δεδομένα σε έναν πολύ μοναδικό τρόπο που είναι μοναδική για τα δεδομένα. Θα μπορούσατε να ανεβάσετε το ολόκληρο το αρχείο όλα με τη μία, αλλά αποδεικνύεται αν το κάνετε ότι, πραγματικά μεγάλα αρχεία λαμβάνουν ένα πραγματικά μεγάλο χρονικό διάστημα για να φορτώσει, και αν έχετε μια αποτυχία, είστε από την τύχη και θα πρέπει να τεθεί πάλι σε λειτουργία. Τι μπορούμε στη συνέχεια να κάνουμε είναι να πούμε άλλο διακομιστή στο σύστημά μας, και αυτό που λέμε τα μεταδεδομένα διακομιστή, ότι hey αυτό είναι ένα αρχείο, και αυτό είναι που αποτελείται από το ακόλουθη λίστα των μπλοκ. Και περνάμε τις hashes να εντοπίσει αυτά τα τμήματα παρά την εκ νέου αποστολή το σύνολο του συγκροτήματος. Η metaserver συνέχεια ελέγχει τους διακομιστές μπλοκ, σιγουρεύεται τα μπλοκ είναι εκεί. Αν είναι, τέλεια. Όλα είναι καλά. ΘΩΜΑΣ Carriero: Όταν θέλετε να κατεβάσετε βασικά το αρχείο από το διαδίκτυο, ας ας πούμε, εμείς θα πούμε την τελευταία metaserver Πρώτα, hey μπορείτε να μου πείτε σχετικά με το πού βρίσκεται αυτού του αρχείου; Και metaserver θα πει, μα αυτό το αρχείο του στην πραγματικότητα 25 κομμάτια τέσσερις-megabyte, και εδώ είναι. Και μετά θα πάμε ένα διακομιστή μπλοκ και πραγματικά κατεβάσετε καθένα από αυτά τα κομμάτια. Και τότε θα ανακατασκευάσει το αρχείο από εκεί, και στη συνέχεια θα ξεκινήσει η λήψη. Ναι, έτσι Dropbox των προσφορών με βάση κλίμακα με πολύ, πολύ επιθετική sharding. ALEX ALLAIN: sharding είναι όταν λαμβάνουν όλοι οι χρήστες στην εκκίνηση σας επάνω ή την εταιρεία σας και ίσως χρησιμοποιείται για να είναι σε μία βάση δεδομένων, και ότι λειτουργεί μεγάλο, μέχρι να χτυπήσει ένα ορισμένο αριθμό χρηστών. Και πραγματικά ό, τι θέλετε να κάνουμε είναι να βρούμε κάποιο τρόπο να χωρίσει εκείνους σε δύο βάσεις δεδομένων, ή ίσως και περισσότερο από δύο. Στην ιδανική περίπτωση, αρκεί το γεγονός ότι μπορείτε να έχουν κάθε χρήστη στον κόσμο. Και έτσι όταν Shard, ό, τι κάνετε είναι να βρει κάποιο τρόπο για να αποφασίσει η οποία βάση δεδομένων για να πάει στο ότι δεν απαιτεί χτυπώντας ένα κεντρικό κατάλογο. Ή ίσως είναι μια πολύ γρήγορη, φθηνά look-up κεντρικό κατάλογο. ΘΩΜΑΣ Carriero: Ποτέ δεν έχουμε τα πάντα είναι αποθηκευμένα σε μια βάση δεδομένων, γιατί αυτό είναι σχεδόν δεν πρόκειται ποτέ να κλίμακα. Έτσι, αντ 'αυτού, αυτό που θα κάνουμε είναι να λάβουμε όλα ότι οι πληροφορίες, όλα τα αρχεία που αποθηκεύονται στο μεταδεδομένα, Shard σε εκατοντάδες ή χιλιάδες λογικών βάσεων δεδομένων. Και αυτό σημαίνει ότι, όταν έχουμε ένα αίτηση παροχής πληροφοριών ενός χρήστη, θα πω πρώτα, hey που βάση δεδομένων είναι πληροφορίες του χρήστη αποθηκεύονται σε; Στη συνέχεια, θα βασικά χρησιμοποιεί το εν λόγω απόφαση να πάει βρείτε τη βάση δεδομένων και αυτό είναι όπου θα φορτώσει όλα τα αρχεία ή όλα τα μεταδεδομένα σχετικά με τα αρχεία. Γι 'αυτό και χρησιμοποιούν πολλή sharding. Αλλά sharding δεν είναι πάντα αρκετό. Είστε πραγματικά πρέπει να cache πολλά από τα κοινά αιτήματα, γιατί ακόμα και αυτά της βάσης δεδομένων ερωτήματα μπορεί να είναι ακριβό έτσι μπορούμε επίσης να κάνουμε επιθετική σύλληψη στρατηγικές για να βεβαιωθείτε ότι το πιο κοινά αιτήματα είναι αρκετά εύκολο να υπολογιστεί. Και βασικά ότι κάνει πολλά πιο γρήγορα και κάνει το έργο ex κλίμακα. Έτσι ώστε να είναι σε πολύ υψηλού επιπέδου πώς λειτουργεί Dropbox. ALEX ALLAIN: Είμαι Alex Allain. ΘΩΜΑΣ Carriero: Και Είμαι Thomas Carriero. ALEX ALLAIN: Και αυτό είναι CS50.