THOMAS CARRIERO: Es esmu Thomas Carriero. Es esmu programmatūras inženieris Dropbox. ALEX ALLAIN: Es esmu Alex Allain. Es esmu inženieris šeit Dropbox. THOMAS CARRIERO: Jā, es biju faktiski pirmā vadītāja TF par CS50 kad David Malin pārņēma klasi. Man jau bija mācību CS50 divus semestrus ar Mike Smith, kurš bija pirms profesors tur. ALEX ALLAIN: Tāpēc es tiešām nebija veikt CS50, bet es tomēr TF to divreiz. Vienreiz kā regulāru TF, un tad mans vecākais gads Es biju tiešām vadītājs TF no CS50, kas bija daudz jautrības. THOMAS CARRIERO: So kad David vērsās man par izveidot Dropbox ir CS50 ierīces, Es biju patiesi satraukti, jo mums tiešām ir Linux klients, tāpēc lielākā daļa no mūsu lietotājiem izmantot vai nu Windows vai Macintosh klientiem, bet Linux, Macintosh un Windows klienti ir visi patiesībā ir ļoti līdzīgi. Tātad, ko mēs izdarījām ir mums iepriekš instalēta Dropbox Linux klients ir CS50 ierīces, un tas darbojas tāpat kā visiem citiem mūsu Linux lietotājiem. ALEX ALLAIN: So kā Dropbox darbojas tas darbojas kā klients no daudziem dažādiem operētājsistēmas un ierīces. Dropbox desktop klients ir viens no labi zināms, un viens no visvairāk interesanti. THOMAS CARRIERO: So Dropbox galvenokārt veic visus failus ka jūs likts uz mapi un tas gabalu šos failus četru megabaitu gabalos. Tātad mēs ņemšu 100 megabaitu PDF fails, un mēs rieciens to 25 četru megabaitu gabalos. Šie gabali ir tad šifrēta, un tad mēs tos sūtīt uz mūsu bloka serveriem. ALEX ALLAIN: Bloku serveri pašiem blokiem uzglabāšana, un tā katrs bloks tiek glabāta bloks serveris ar datiem un Shaw 356 hash no šī bloka. Tas ir ļoti pamata šifrēšanas primitīvs kas apkopoti, savā ziņā, dati ļoti unikālā veidā , kas ir unikāla šiem datiem. Jūs varētu augšupielādēt Visa failu visu uzreiz, bet izrādās, ja jūs ka, patiešām lieli faili aizņem ļoti ilgs laiks, lai augšupielādēt, un, ja Jums ir mazspēja, jūs no luck un jums ir restartēt. Ko mēs tad darīt, ir mums pateikt otru serveri mūsu sistēmā, un tas, ko mēs saucam metadatus Serveris, ka hey tas ir fails, un tas sastāv no pēc saraksta blokiem. Un mēs iet uz augšu hashes identificēt šos blokus nevis atkārtoti augšupielādējot viss bloks. Metaserver tad pārbauda bloku serveriem, pārliecinās, ka bloki ir tur. Ja tie ir, perfekta. Viss ir labi. THOMAS CARRIERO: Kad mēs vēlas, lai būtībā lejupielādētu failu no interneta, pieņemsim teiksim, mēs sakām pēdējā metaserver pirmkārt, hey, jūs varat man pateikt par to, kur šī faila atrodas? Un metaserver teiks, ak šis fails ir faktiski 25 četru megabaitu gabalos, un šeit tie ir. Un tad mēs iesim bloka serveri un faktiski lejupielādēt katru no šiem gabalos. Un tad mēs rekonstruēt failu no turienes, un tad mēs sāktu lejupielādi. Jā, tāpēc Dropbox darījumu ar skalu pamatā ko ļoti, ļoti agresīvi sharding. ALEX ALLAIN: Sharding ir tad, kad tu veikt visus lietotājus savā uzsākšanas vai jūsu uzņēmums, un varbūt viņi izmanto, lai vienā datu bāzē, un tas darbojas lieliski, kamēr jūs hit noteiktu lietotāju skaitu. Un tiešām, ko jūs vēlaties jādara, ir atrast kādu veidu, sadalīt tos divās datu bāzēm, vai, iespējams, ir vairāk nekā divi. Ideāli, pietiekami, ka jūs varat ir katram lietotājam pasaulē. Un tad, kad tu Shard, ko jūs darāt, ir jums atrast kādu veidu, lemjot kuru datubāzi iet to, kas neprasa hitting centrālo direktoriju. Vai varbūt tas ir ļoti ātrs, lēti meklēt-up centrālo direktoriju. THOMAS CARRIERO: Mums nekad nav viss glabājas vienā datu bāzē, jo tas ir gandrīz nekad mērogā. Tā vietā, ko mēs darīsim, ir jāveic visi šī informācija, visi faili, kas tiek saglabāti uz metadatiem, Shard pāri simtiem vai tūkstošiem loģisko datu bāzēm. Un tas nozīmē, ka tad, kad mēs esam pieprasītu lietotāja informāciju, mēs vispirms teikt, hey, kas datu bāzes Vai šī lietotāja informācija glabājas? Tad mēs būtībā izmantot šo lēmumu, lai dotos konstatēt, ka datu bāze un tas ir, ja mēs ielādēt visus failus vai visus metadati par failus. Tāpēc mēs izmantojam daudz sharding. Bet sharding ne vienmēr ir pietiekami. Jums tiešām ir nepieciešams, lai cache daudz kopīgo pieprasījumu, jo pat tie, datu bāzes vaicājumi var būt dārgi tāpēc mēs arī to agresīvi notveršanā stratēģijas, lai pārliecinātos, ka visvairāk kopējie pieprasījumi ir diezgan viegli aprēķināt. Un būtībā, kas padara daudz ātrāk, un tas padara darbu ex skalu. Tātad tas ir pie ļoti augsta līmeņa, kā Dropbox darbojas. ALEX ALLAIN: Es esmu Alex Allain. THOMAS CARRIERO: Un Es esmu Thomas Carriero. ALEX ALLAIN: Un tas ir CS50.