THOMAS CARRIERO: Ek is Thomas Carriero. Ek is 'n sagteware ingenieur by Dropbox. ALEX Allain: Ek is Alex Allain. Ek is 'n ingenieur hier by Dropbox. THOMAS CARRIERO: Ja, ek was eintlik die eerste hoof TF vir CS50 Toe Dawid Malin het oor die klas. Ek het reeds onderrig CS50 vir twee semesters Mike Smith, wat die vorige professor daar. ALEX Allain: Ek het eintlik nie neem CS50, maar ek het TF dit twee keer. Sodra as 'n gereelde TF, en dan my senior jaar Ek was eintlik kop TF van CS50, wat 'n baie pret. THOMAS CARRIERO: So Toe Dawid bereik uit met my oor die oprigting van ' Dropbox in die CS50 toestel, Ek is baie opgewonde, want Ons het eintlik 'n Linux kliënt, sodat die meeste van ons gebruikers gebruik óf Windows of die Macintosh kliënte, Maar die Linux, Mac, en Windows kliënte is eintlik baie soortgelyk. So wat ons gedoen het, is ons vooraf geïnstalleer die Dropbox Linux kliënt in die CS50 apparaat, en dit loop net soos almal van ons ander Linux-gebruikers. ALEX Allain: So het die manier Dropbox werk, is dit lopies as 'n kliënt op baie verskillende bedryfstelsels en toestelle. Die Dropbox lessenaar kliënt is een van die mees bekende, en een van die mees interessante. THOMAS CARRIERO: So Dropbox basies neem al die lêers dat jy sit in die gids en dit stukke die lêers in vier-megabyte stukke. So ons sal 'n 100-megabyte neem PDF lêer en ons sal stuk dit in 25 vier-megabyte stukke. Diegene stukke word dan geïnkripteer en stuur ons hulle aan ons blok bedieners. ALEX Allain: Die blok bedieners die stoor vir die blokke, en so elke blok is gestoor die blok-bediener met die data en 'n Shaw 356 hash van die blok. Dis 'n baie basiese kodering primitief wat 'n opsomming, in 'n sekere sin, die data in 'n baie unieke manier dit is uniek aan daardie data. Jy kan oplaai die hele lêer alles op een slag, Maar dit blyk uit as jy dit doen dat, regtig groot lêers te neem 'n baie lang tyd om te laai, en indien jy het 'n mislukking, is jy uit van geluk en jy het dit om weer te begin. Wat ons dan doen, is ons vertel 'n ander bediener in ons stelsel, en wat ons noem die metadata bediener, wat hey dit is 'n lêer, en dit is saamgestel uit die volgende lys van blokke. En ons slaag om die twee velde daardie blokke te identifiseer eerder as re-oplaai die hele blok. Die metaserver dan gaan die blok servers, maak seker dat die blokke is daar. As hulle is, volmaak. Alles is goed. THOMAS CARRIERO: Wanneer ons wil basies aflaai die lêer van die internet, laat sê, sal ons die laaste metaserver sê eerste, hey kan jy my vertel oor waar hierdie lêer se geleë? En metaserver sal sê, o hierdie lêer se eintlik 25 vier-megabyte stukke, en hier is hulle. En dan sal ons 'n blok bediener gaan eintlik laai elk van die stukke. En dan sal ons herbou die lêer van daar af, en dan sal ons die aflaai begin. Ja, so Dropbox van handel met skaal basies deur baie, baie aggressiewe sharding. ALEX Allain: Sharding is wanneer jy neem al die gebruikers in jou begin tot of jou maatskappy en miskien het hulle gebruik te word in 'n databasis, en dat werk baie goed totdat jy getref 'n sekere aantal van die gebruikers. En regtig wat jy wil hê te doen, is om 'n manier te vind diegene te verdeel in twee databasisse, of dalk meer as twee. Ideaal gesproke genoeg dat jy kan het elke gebruiker in die wêreld. En so wanneer jy Shard, wat jy doen is jy een of ander manier van die besluit vind die databasis wat om te gaan te wat nie vereis slaan 'n sentrale gids. Of miskien is dit 'n baie vinnige, goedkoop look-up sentrale gids. THOMAS CARRIERO: Ons het nog nooit alles wat gestoor word in 'n databasis, want dit is amper nooit te skaal gaan. So in plaas daarvan, wat ons gaan doen, is om al daardie inligting, al die lêers wat gestoor word op die metadata, Shard oor honderde of duisende logiese databasisse. En dit beteken dat wanneer ons 'n vra vir 'n gebruiker se inligting, Ons sal die eerste sê, hey wat databasis is hierdie gebruiker se inligting gestoor in? Dan sal ons basies gebruik dat die besluit om te gaan vind dat die databasis en dit is waar ons sal laai al die lêers of al die metadata oor die lêers. So gebruik ons ​​'n baie sharding. Maar sharding is nie altyd genoeg nie. Jy is werklik nodig om die kas 'n groot deel van die algemene versoeke, want selfs die databasis navrae kan duur wees so ons doen ook aggressiewe vaslê strategieë om seker te maak dat die meeste algemene versoeke baie maklik om te bereken. En basies wat maak 'n baie vinniger en dit maak dit werk ex skaal. So dit is op 'n baie hoë-vlak hoe Dropbox werk. ALEX Allain: Ek is Alex Allain. THOMAS CARRIERO: En Ek is Thomas Carriero. ALEX Allain: En dit is CS50.