THOMAS CARRIERO: Jsem Thomas Carriero. Jsem softwarový inženýr na Dropbox. ALEX ALLAIN: Já jsem Alex Allain. Jsem inženýr zde na Dropbox. THOMAS CARRIERO: Ano, byl jsem vlastně první hlava TF pro CS50 když David Malin převzal třídu. Už jsem se učil CS50 dva semestry Mike Smith, který byl před profesor tam. ALEX ALLAIN: Takže jsem vlastně dělal ne se CS50, ale dvakrát jsem to udělal TF to. Poté, co jako běžné TF, a pak se můj nadřízený rok Byl jsem vlastně hlava TF z CS50, což bylo hodně legrace. THOMAS CARRIERO: Tak když David natáhl mi o nastavení Dropbox v CS50 spotřebiče Byl jsem opravdu nadšený, protože ve skutečnosti máme klienta Linux, takže většina našich uživatelů používá buď Windows nebo klienti Macintosh, ale Linux, Macintosh a Windows klienti jsou ve skutečnosti velmi podobné. Takže to, co jsme udělali je, že jsme pre-nainstalovány klient Dropbox Linux v CS50 zařízení, a to běží, stejně jako všechny naše ostatní uživatele Linuxu. ALEX ALLAIN: Tak způsob, jak Dropbox funguje, je to běží jako klient na mnoha různých operační systémy a zařízení. Desktop klient Dropbox je jeden z nejvíce dobře známý, a jeden z nejzajímavějších. THOMAS CARRIERO: Tak Dropbox v podstatě se všechny soubory které jste vložili do složky a kousky tyto soubory do čtyř megabajt kousky. Takže budeme mít 100 megabajtů Soubor PDF a my kus do 25 čtyři megabajt kousky. Tyto kusy jsou pak šifrován a pak poslat do našeho bloku servery. ALEX ALLAIN: Blok servery jsou úložiště pro samotné bloky, a proto každý blok je uložen v blok server s daty a Shaw 356 hash tohoto bloku. To je velmi jednoduchý šifrovací primitivní , který shrnuje, v určitém smyslu, data ve velmi jedinečným způsobem to je jedinečné těchto údajů. Dalo by se nahrát celý soubor najednou, ale ukázalo se, pokud nechcete že, opravdu velké soubory zabírají opravdu dlouhá doba nahrát, a pokud máte poruchu, máte smůlu a musíte ji restartovat. To, co pak dělat, je, že jsme říci, jiný server v našem systému, a to, co nazýváme metadata serveru, že hej to je soubor, a to ve složení Následující seznam bloků. A my jsme projít do hodnoty hash identifikovat ty bloky spíše než re-nahrávání celý blok. Metaserver pak kontroluje bloku servery, zajišťuje, že bloky jsou tam. Pokud jsou, perfektní. Všechno je dobré. THOMAS CARRIERO: Když jsme Chcete podstatě ke stažení souborů z internetu, ať je to řekněme, budeme říkat na poslední metaserver První, hej můžete mi říct, o tom, kde se nachází tento soubor je? A metaserver řeknou, ach tento soubor je ve skutečnosti 25 čtyři-megabyte kousky, a tady jsou. A pak půjdeme blokové serveru a skutečně stáhnout každý z těchto bloků. A pak budeme rekonstruovat soubor odtud, a pak budeme-li zahájit stahování. Ano, tak Dropbox obchodů se stupnicí v podstatě velmi, velmi agresivní sharding. ALEX ALLAIN: Sharding je, když jste vzít všechny uživatele ve vaší začátku až nebo vaše společnost, a možná, že používá se v jedné databázi, a že funguje skvěle, dokud hit určitý počet uživatelů. A opravdu to, co chceš udělat, je najít nějaký způsob, rozdělit ty přes dvě databáze, nebo možná více než dvě. V ideálním případě tak, že můžete mít každý uživatel na světě. A tak, když se střep, to, co děláte, je vám najít nějaký způsob, jak rozhodnout, které databáze jít se, že nevyžaduje bít centrální adresář. Nebo možná, že je to velmi rychlé, levné look-up centrální adresář. THOMAS CARRIERO: Nikdy jsme se vše uloženo v jedné databázi, protože to je téměř nikdy měřítku. Takže místo toho, co budeme dělat, je mít všechny že údaje, všechny soubory, které jsou uloženy na metadata, Shard celé stovky nebo tisíce logických databází. A to znamená, že pokud máme žádost o informace uživatele, budeme nejprve říci, hej, které databáze jsou informace uživatelův uloženy v? Pak jsme si v podstatě použití tohoto rozhodnutí jít zjistíte, že databáze a to je, kde budeme načíst všechny soubory nebo všechny metadata o souborech. Tak jsme se použít hodně sharding. Ale sharding není vždy dost. Jste skutečně potřebují do mezipaměti hodně společných požadavků, protože i ty databáze Dotazy mohou být drahé tak uděláme také agresivní snímání strategie, aby se ujistil, že nejvíce společné požadavky jsou poměrně snadno vypočítat. A v podstatě, že dělá hodně rychleji, a to dělá to funguje ex měřítko. Tak to je na velmi na vysoké úrovni, jak Dropbox funguje. ALEX ALLAIN: Já jsem Alex Allain. THOMAS CARRIERO: A Jsem Thomas Carriero. ALEX ALLAIN: A je to CS50.