THOMAS CARRIERO: Ich bin Thomas Carriero.
Ich bin ein Software-Ingenieur bei Dropbox.
>> ALEX ALLAIN: Ich bin Alex Allain.
Ich bin ein Ingenieur hier bei Dropbox.
>> THOMAS CARRIERO: Ja, ich war tatsächlich der erste Kopf TF für CS50
als David Malin übernahm die Klasse.
Ich hatte bereits unterrichtet CS50 für zwei Semester
mit Mike Smith, der war der Stand der Professor dort.
>> ALEX ALLAIN: Also ich eigentlich nicht CS50 nehmen, aber ich habe es zweimal TF.
Einmal als normale TF, und dann mein Abschlussjahr
Ich war eigentlich der Kopf TF CS50, die eine Menge Spaß gemacht hat.
THOMAS CARRIERO: So als David streckte
mir über die Einrichtung Dropbox in der CS50-Appliance,
Ich war wirklich aufgeregt, denn wir haben tatsächlich einen Linux-Client,
so dass die meisten unserer Benutzer entweder Windows-oder Macintosh-Clients die,
aber die Linux-, Macintosh-und Windows Kunden sind alle eigentlich sehr ähnlich.
>> Also, was wir getan haben ist, dass wir vorinstalliert die Dropbox-Linux-Client in der CS50
Gerät, und es läuft so wie alle anderen Linux-Benutzer.
>> ALEX ALLAIN: Also die Weg Dropbox funktioniert, ist es
läuft als Client auf verschiedenen Betriebssysteme und Geräte.
Die Dropbox-Desktop-Client ist eines der bekanntesten,
und eine der interessantesten.
>> THOMAS CARRIERO: Also Dropbox nimmt grundsätzlich alle Dateien
dass Sie in den Ordner legen und es Brocken diese Dateien in vier Megabyte Brocken.
Also werden wir eine 100-MB-nehmen PDF-Datei und wir werden
Stück in vier 25-MB-Brocken.
Diese Stücke werden dann verschlüsselt und dann schicken wir sie zu unserem Block-Servern.
>> ALEX ALLAIN: Die Block-Server sind der Speicher für die Blöcke selbst,
und so wird jeder Block gespeicherten der Block-Server mit der Daten
Shaw und eine 356-Hash dieses Blocks.
Das ist eine sehr primitive Grundverschlüsselung dass fasst, in gewissem Sinne,
die Daten in einer einzigartigen Art und Weise das ist einzigartig für diese Daten.
>> Sie könnten lade die gesamte Datei auf einmal
aber es stellt sich heraus, ob Sie tun dass die wirklich großen Dateien nehmen
eine wirklich lange Zeit zu laden, und wenn Sie einen Ausfall haben, aus Glück sind Sie
und Sie haben, um es neu zu starten.
>> Was wir dann zu tun ist, wir sagen ein anderer Server in unserem System,
und was wir nennen die Metadaten Server, hey das ist, dass eine Datei,
und es ist, der sich aus folgende Liste von Blöcken.
Und wir verzichten die Hashes , diese Blöcke zu identifizieren
eher als Re-Upload der gesamte Block.
Die Metaserver dann prüft die Block-Servern
stellt sicher, dass die Blöcke sind da.
Wenn sie sind, perfekt.
Alles ist gut.
>> THOMAS CARRIERO: Wenn wir wollen im Grunde downloaden
die Datei aus dem Internet, lassen Sie uns sagen wir, wir werden bis zum letzten Metaserver sagen
erste, hey kannst du mir sagen wo liegt dieser Datei?
Und Metaserver werden sagen, oh, diese Datei tatsächlich vier 25-MB-Brocken,
und hier sind sie.
Und dann werden wir einen Block-Server gehen und tatsächlich herunterladen jede dieser Brocken.
Und dann werden wir rekonstruieren die Datei von dort,
und dann werden wir den Download zu starten.
Ja, so Dropbox der Angebote mit Skala im Grunde
von sehr, sehr aggressive Splitter.
>> ALEX ALLAIN: Sharding ist, wenn Sie nehmen alle Benutzer in Ihrem Start-up
oder Ihre Firma und vielleicht verwendet, um in einer Datenbank sein,
und das funktioniert super, bis Sie traf eine bestimmte Anzahl von Benutzern.
Und wirklich, was Sie wollen tun müssen, ist einen Weg finden,
zu denen in zwei Teile gespalten Datenbanken, oder vielleicht mehr als zwei.
Idealerweise genug, dass man haben alle Nutzer in der Welt.
>> Und so, wenn Sie Scherbe, was Sie tun, ist, dass Sie
einen Weg finden, zu entscheiden, die Datenbank zu gehen
derjenigen erfordert keine Kollision mit einem zentralen Verzeichnis.
Oder vielleicht ist es eine sehr schnelle, billige Look-up-zentralen Verzeichnis.
>> THOMAS CARRIERO: Wir haben nie alles in einer Datenbank gespeichert,
denn das ist fast nie zu skalieren.
Anstatt also, was wir tun, ist alles dass die Informationen, alle Dateien, die
auf den Metadaten gespeichert, Scherbe über Hunderte
oder Tausende von logischen Datenbanken.
Und das bedeutet, dass, wenn wir einen Antrag auf Informationen eines Benutzers,
wir zunächst sagen, hey die Datenbank die Informationen dieses Benutzers gespeichert?
Dann werden wir im Grunde verwenden Sie diese Entscheidung zu gehen
finden diese Datenbank und das ist, wo wir
Laden Sie alle Dateien oder alle die Metadaten zu den Dateien.
>> So verwenden wir eine Menge Splitter.
Aber Splitter ist nicht immer genug.
Sie sind tatsächlich benötigen, um zwischenspeichern eine Menge der gemeinsamen Anfragen
denn selbst die Datenbank Abfragen können teuer sein
so tun wir auch aggressive Erfassung Strategien, um sicherzustellen, dass die meisten
häufigsten Anfragen sind ganz einfach zu berechnen.
Und im Grunde, dass macht viel schneller und es macht es arbeiten Ex-Skala.
Also das ist auf einem sehr High-Level-wie Dropbox funktioniert.
>> ALEX ALLAIN: Ich bin Alex Allain.
>> THOMAS CARRIERO: Und Ich bin Thomas Carriero.
ALEX ALLAIN: Und das ist CS50.