THOMAS CARRIERO: Én vagyok Thomas Carriero. Én egy szoftver mérnök Dropbox. ALEX ALLAIN: Alex vagyok Allain. Mérnök vagyok itt a Dropbox. THOMAS CARRIERO: Igen, én voltam valójában az első fej TF CS50 amikor David Malin vette át az osztály. Én már tanított CS50 két félév Mike Smith, aki A korábbi tanár ott. ALEX ALLAIN: Szóval tényleg nem hogy CS50, de én TF kétszer. Ha a rendszeres TF, majd a végzős Én valójában vezetője TF CS50, ami egy nagyon szórakoztató. THOMAS CARRIERO: Tehát amikor David kinyújtotta nekem felállítása Dropbox a CS50 készülék Nagyon izgatott voltam, mert a valójában egy Linux kliens, így a legtöbb felhasználó használja vagy A Windows és Macintosh kliensek, de a Linux, Macintosh és Windows ügyfelek mind valójában nagyon hasonló. Tehát mi volt az, amit előre telepítve A Dropbox Linux ügyfél a CS50 készüléket, és fut, mint Minden más Linux-felhasználók számára. ALEX ALLAIN: Tehát a módon Dropbox működik ez fut a kliens különböző operációs rendszerek és eszközök. A Dropbox asztali kliens az egyik jól ismert, és az egyik legérdekesebb. THOMAS CARRIERO: Tehát Dropbox alapvetően veszi az összes fájl , hogy tegye a mappában, és törzsdarabok ezeket a fájlokat a négy megabájt darabokat. Így lesz egy 100 MB-os PDF-fájlt, és mi darab be 25 négy megabyte darabokat. Azok a darabokat ezután titkosítva akkor küldje el a blokk szervereket. ALEX ALLAIN: A blokk szerverek a tárolás a blokkok maguk és így minden egyes blokk van tárolva a blokk szerver az adatokat és a Shaw 356 hash, hogy a blokk. Ez egy nagyon egyszerű titkosítási primitív , amely összefoglalja, bizonyos értelemben, az adatokat egy nagyon egyedi módon ami egyedi az adatokat. Lehet feltölteni a az egész fájlt egyszerre, de kiderül, ha nem arra, hogy az igazán nagy fájlokat fog egy nagyon hosszú idő, hogy feltölt, és ha van egy hiba, akkor így jártál és meg kell újraindítani. Amit akkor nem is mondunk másik szerver a rendszerben, és hívjuk a metaadatok szervert, hogy hé ez egy fájl, és ez áll a alábbi lista a blokkok. És adja át a hash-eket azonosítani azokat a blokkokat helyett újra feltölteni az egész blokk. A metaserver akkor ellenőrzi a blokk szerverek, biztosítja, hogy a blokkok vannak. Ha igen, tökéletes. Minden jó. THOMAS CARRIERO: Amikor szeretnénk alapvetően letölteni A fájlt az interneten, nézzük mondjuk, azt mondom, hogy az utolsó metaserver először, hé tudsz mondani arról, hogy hol ez a fájl található? És metaserver azt mondják, ó, ez a fájl a valójában 25 négy megabyte darabokat, és itt vannak. Aztán elmegyünk egy blokk szerver és valójában letölt minden egyes ilyen darabokat. És akkor majd rekonstruálni A fájlt onnan, és aztán majd indítsa el a letöltést. Igen, így Dropbox foglalkozik skálával alapvetően a nagyon, nagyon agresszív sharding. ALEX ALLAIN: Sharding az, amikor hogy minden, a felhasználók a induló vagy a vállalat, és talán Régen egy adatbázisban, és ez remekül működik, amíg meg nem megüt egy bizonyos számú felhasználó. És tényleg, mit akarsz kell tennie, hogy megtalálja a módját, megosztani azokat az egész két adatbázisok, vagy talán több, mint kettő. Ideális esetben elég, hogy van-e hogy minden felhasználó a világon. És így ha Szilánk, amit csinálsz te valamilyen módon a döntés melyik adatbázishoz kell menni az, amely nem igényel ütő a központi könyvtár. Vagy talán ez egy nagyon gyors, olcsó look-up központi könyvtárban. THOMAS CARRIERO: Mi soha nem mindent tárolni egy adatbázisban, mert ez majdnem soha nem fog a skála. Tehát ahelyett, hogy mit fogunk tennie, hogy minden hogy az információ, a fájlok tárolt metaadatok, Shard több száz vagy több ezer logikai adatbázisok. És ez azt jelenti, hogy van egy kéri a felhasználó adatait, akkor először azt mondják, hé, amely az adatbázis a felhasználó által tárolt adatok? Akkor alapvetően használni, hogy a döntést, hogy megy meg, hogy az adatbázis és itt fogunk betölteni a fájlokat vagy az összes A metaadatok a fájlokat. Így is rengeteg sharding. De sharding nem mindig elég. Ön valóban szükség van a cache sok a közös kérelmek mert még azok az adatbázis lekérdezések költséges lehet ezért mi is ezt az agresszív rögzítése stratégiákat, hogy megbizonyosodjon arról, hogy a leginkább közös kérelmek elég könnyű kiszámolni. És tulajdonképpen, ami egy csomó gyorsabb, és ez teszi a munka ex skálán. Szóval ez egy nagyon magas szintű, hogy Dropbox működik. ALEX ALLAIN: Alex vagyok Allain. THOMAS CARRIERO És Én vagyok Thomas Carriero. ALEX ALLAIN: És ez CS50.