THOMAS CARRIERO: Jestem Thomas Carriero. Jestem inżynierem oprogramowania w Dropbox. ALEX ALLAIN: Jestem Alex Allain. Jestem inżynierem tutaj na Dropbox. THOMAS CARRIERO: Tak, byłem faktycznie szef TF dla CS50 kiedy David Malin objął klasę. I już uczyć CS50 na dwa semestry Mike Smith, który był przed profesorem tam. ALEX ALLAIN: Więc tak naprawdę nie podjąć CS50, ale dwa razy nie TF to. Gdy jako zwykły Tf i wtedy mój ostatni rok I faktycznie z głowy TF CS50, co było dużo zabawy. THOMAS CARRIERO: Tak kiedy David wyciągnął mi na temat konfigurowania Dropbox w urządzeniu CS50, Byłem bardzo podekscytowany, ponieważ faktycznie mieć klienta Linux, więc większość użytkowników korzystać zarówno Klienci z systemem Windows lub Macintosh, ale Linux, Macintosh i Windows klienci są rzeczywiście bardzo podobne. Więc to, co zrobiliśmy to my preinstalowany Klient Dropbox Linux w CS50 urządzenia, i to działa tak jak wszystkich naszych innych użytkowników Linuksa. ALEX ALLAIN: Tak sposób działa to Dropbox działa jako klient na wielu różnych systemów operacyjnych i urządzeń. Dropbox jest klient pulpitu jeden z najbardziej powszechnie wiadomo, i jednym z najbardziej interesujących. THOMAS CARRIERO: Więc Dropbox w zasadzie wykonuje wszystkie pliki , które można umieścić w folderze i chunks te pliki na kawałki cztery megabajt. Więc bierzemy 100-megabajt Plik PDF, a my kawałek go do 25 czterech megabajtów kawałki. Kawałki te są następnie szyfrowane i potem wysyłać je do naszych serwerów blokowych. ALEX ALLAIN: blok są serwery przechowywania samych bloków, a każdy blok jest tak przechowywany w Serwer blok z danymi i Shaw 356 hash tego bloku. To jest bardzo proste, prymitywne szyfrowanie podsumowujący, w pewnym sensie, Dane w bardzo szczególny sposób to unikalne dla tych danych. Można załadować cały plik na raz, ale okazuje się, jeśli nie , że naprawdę duże pliki zajmują bardzo długi czas, aby przesłać, a jeśli masz awarię, masz pecha i trzeba go ponownie uruchomić. Co wtedy zrobić, to możemy powiedzieć, że inny serwer w naszym systemie, i to, co nazywamy metadane Serwer, że hej, to jest plik, i to w składzie Poniższa lista bloków. I mijamy się mieszań zidentyfikować te bloki zamiast ponowne przesłanie Cały blok. Metaserver następnie sprawdza serwery blokowe, zapewnia, że ​​bloki są tam. Jeśli są, doskonały. Wszystko jest dobrze. THOMAS CARRIERO: Kiedy chce po prostu ściągnąć plik z internetu, niech powiedzmy, powiemy do ostatniego metaserver Pierwszy, hej możesz mi powiedzieć o tym, gdzie znajduje się ten plik w? I metaserver powie, oh ten plik jest faktycznie 25 kawałki megabajt, cztery i tu są. A potem pójdziemy blok i serwer faktycznie ściągnąć każdy z tych kawałków. A potem będziemy rekonstruować plik stamtąd, a następnie będziemy rozpocząć pobieranie. Tak, tak, Dropbox transakcji ze skalą w zasadzie przez bardzo, bardzo agresywny sharding. ALEX ALLAIN: Sharding jest, kiedy podjęcia wszystkich użytkowników w rozruchu lub firmę, a może one stosowany jest w jednej bazy i że działa świetnie, dopóki nie hit pewnej liczby użytkowników. I naprawdę to, co chcesz zrobić, to znaleźć sposób, podzielić te w poprzek dwóch bazy danych, a może więcej niż dwa. Idealnie, tyle, że można posiada każdy użytkownik w świecie. I tak, gdy odłamek, co możesz zrobić, to ci znaleźć sposób podejmowania decyzji która baza danych, aby przejść na które nie wymagają uderzając centralny katalog. A może jest to bardzo szybkie, tanie przeglądowa centralny katalog. THOMAS CARRIERO: nie mamy wszystko przechowywane w jednej bazie danych, dlatego, że prawie nigdy nie będzie w skali. Więc zamiast tego, co możemy zrobić, to wziąć wszystko że informacje, wszystkie pliki, które są przechowywane w metadanych, Shard całej setki lub tysiące logicznych baz danych. A to oznacza, że ​​gdy mamy Prośba o informacje użytkownika, my najpierw powiedzieć, hej, która baza danych są informacje użytkownika przechowywane w? Wtedy będziemy w zasadzie stosować tę decyzję, aby przejść okaże się, że baza danych i to, gdzie będziemy załadować wszystkie pliki lub wszystkie metadane o plikach. Więc używamy dużo sharding. Ale sharding nie zawsze jest wystarczające. W rzeczywistości trzeba buforować Wiele wspólnych wniosków, bo nawet ci, bazy danych Zapytania mogą być kosztowne dlatego też nie agresywny przechwytywanie strategie, aby upewnić się, że najbardziej wspólne wnioski są dość łatwo obliczyć. I w zasadzie sprawia, że ​​wiele szybsze i to sprawia, że ​​działa ex skalę. Więc to jest na bardzo na wysokim szczeblu, jak Dropbox działa. ALEX ALLAIN: Jestem Alex Allain. THOMAS CARRIERO: A Jestem Thomas Carriero. ALEX ALLAIN: I to jest CS50.