THOMAS Carriero: Аз съм Томас Carriero. Аз съм софтуерен инженер в Dropbox. ALEX ALLAIN: Аз съм Алекс Allain. Аз съм инженер тук в Dropbox. THOMAS Carriero: Да, бях всъщност първият главата TF за CS50 когато Дейвид Малин пое класа. Бях вече преподава CS50 за два семестъра с Майк Смит, който беше предварителното професор там. ALEX ALLAIN: Така че аз всъщност не направих предприеме CS50, но го направих TF го два пъти. След като редовен TF, и след това ми година Всъщност аз бях ръководител на TF CS50, което беше много забавно. THOMAS Carriero: So когато Дейвид се протегна с мен за създаване Dropbox в CS50 уреда, Бях много развълнуван, защото ние всъщност имаме Linux клиент, така че повечето от нашите потребители използват или Windows или Macintosh клиенти, но Linux, Macintosh и Windows Всички клиенти, които всъщност са много сходни. Така че това, което направихме е, че ние предварително инсталиран клиентът Dropbox Linux в CS50 уред, и той работи точно като всички други наши потребители на Linux. ALEX ALLAIN: Така че начин Dropbox работи е работи като клиент на много различни операционни системи и устройства. Десктоп клиент Dropbox е един от най-добре познатите, и един от най-интересните. THOMAS Carriero: Така Dropbox основно взима всички файлове че ще ви постави в папката и я парчета тези файлове в четири мегабайта парчета. Така че ние ще вземе 100-мегабайт PDF файл и ние ще парче го в 25 четири-мегабайта парчета. След това тези парчета са криптирани и тогава можем да ги изпращате на нашите печатни сървъри. ALEX ALLAIN: блокови сървърите са съхранение за самите блокове и така че всеки блок се съхранява в на блока на сървъра с данните и хашиш от този блок Shaw 356. Това е един много основен криптиране примитивен който обобщава, в известен смисъл, данните в уникален начин това е уникален за това данни. Можете да качите Целият файл наведнъж, но се оказва, че ако го направите, Това наистина големи файлове, да се много дълго време, за да качите, и ако имате неуспех, вие сте изложени на късмет и вие трябва да го рестартирате. Какво тогава ние правим е да кажа друг сървър в нашата система, и това, което ние наричаме метаданните сървър, че ей това е файл, и е съставен от следния списък на блокове. И ние пропускаме хешовете да се идентифицират тези блокове Вместо повторно качване на целия блок. The metaserver тогава проверява печатни сървъри, прави се, че блоковете са там. Ако те са перфектни. Всичко е добре. THOMAS Carriero: Когато ние искате да изтеглите основно на файл от интернет, да да речем, ще кажем, че до последния metaserver първо, хей може ли да ми кажете за това къде се намира този файл е? И metaserver ще кажа, о, този файл е всъщност 25 четири мегабайта парчета, и тук са те. И тогава ние ще отидем блок сървър и всъщност свалите всеки от тези парчета. И тогава ние ще се реконструира файла от там, и след това ще започне изтеглянето на файла. Да, така Dropbox сделки с мащаб основно от много, много агресивен sharding. ALEX ALLAIN: Sharding е, когато предприеме всички потребители във вашата стартиране или вашата фирма и може би те да бъде използван в една база данни, и че работи чудесно, докато не хит на определен брой потребители. И наистина това, което искате да направите е да намерите някакъв начин да се разделят тези в два бази данни, или може би повече от два. В идеалния случай, достатъчно, че можете да има всеки потребител в света. И така, когато парчето, това, което правите вие ​​е намери някакъв начин на вземане на решение коя база данни да отидете за които не се изисква удря централната директория. Или може би това е един много бърз, евтини поглед нагоре централната директория. THOMAS Carriero: Ние никога не сме всичко се съхранява в база данни, защото това е почти никога няма да мащабирате. Така че, вместо това, което ние ще направим, е да вземе всички тази информация, всички файлове, които се съхраняват на метаданните, Shard през стотици или хиляди логически бази данни. А това означава, че когато имаме Запитване за информация на потребителя, ние първо ще кажа, хей коя база данни се информация за това на потребителя се съхраняват в? Тогава ще основно използвате това решение, за да отидете откриете, че база данни и това е, когато ние ще зареди всички файлове или всичките метаданните за файловете. Така че ние използваме много sharding. Но sharding не винаги е достатъчно. Вие действително се нуждаят, за да кешират много от най-честите искания, защото дори и тези, база данни заявки могат да бъдат скъпи така че ние също правим агресивна улавяне стратегии, за да се уверете, че най- общи искания са доста лесно да се изчисли. И в общи линии, че прави много по-бързо и това го прави да работи бивш мащаб. Така че това е най-много високо равнище, как работи Dropbox. ALEX ALLAIN: Аз съм Алекс Allain. THOMAS Carriero: И Аз съм Томас Carriero. ALEX ALLAIN: И това е CS50.