1 00:00:00,000 --> 00:00:00,409 2 00:00:00,409 --> 00:00:01,950 THOMAS CARRIERO: Jaz sem Thomas Carriero. 3 00:00:01,950 --> 00:00:03,640 Jaz sem inženir na Dropbox. 4 00:00:03,640 --> 00:00:05,250 >> ALEX Allain: Jaz sem Alex Allain. 5 00:00:05,250 --> 00:00:08,200 Jaz sem inženir tukaj na Dropbox. 6 00:00:08,200 --> 00:00:11,320 >> THOMAS CARRIERO: Ja, bil sem pravzaprav prva glava TF za CS50 7 00:00:11,320 --> 00:00:13,660 Ko je David Malin prevzel razred. 8 00:00:13,660 --> 00:00:17,010 Sem že učil CS50 dva semestra 9 00:00:17,010 --> 00:00:20,700 Mike Smith, ki je bil Pred profesor tam. 10 00:00:20,700 --> 00:00:25,310 >> ALEX Allain: Zato sem pravzaprav ni da CS50, vendar sem TF ga dvakrat. 11 00:00:25,310 --> 00:00:29,050 Enkrat kot redni TF, in potem moj višji letnik 12 00:00:29,050 --> 00:00:32,520 Pravzaprav sem vodja TF od CS50, kar je bilo zelo zabavno. 13 00:00:32,520 --> 00:00:34,270 THOMAS CARRIERO: Torej Ko je David dosegel, 14 00:00:34,270 --> 00:00:38,647 mi o vzpostavitvi Dropbox v CS50 aparata, 15 00:00:38,647 --> 00:00:41,230 Res sem navdušena, ker imamo dejansko odjemalec za Linux, 16 00:00:41,230 --> 00:00:46,270 Tako je večina naših uporabnikov uporablja bodisi Windows ali stranke Macintosh, 17 00:00:46,270 --> 00:00:50,940 ampak Linux, Macintosh in Windows stranke so vsi pravzaprav zelo podobna. 18 00:00:50,940 --> 00:00:55,590 >> Torej, kaj smo naredili je, da smo vnaprej nameščen Stranka Dropbox za Linux v CS50 19 00:00:55,590 --> 00:00:59,990 Aparat in teče tako kot vseh naših drugih uporabnikov Linuxa. 20 00:00:59,990 --> 00:01:02,210 >> ALEX Allain: Torej Tako Dropbox deluje, je to 21 00:01:02,210 --> 00:01:08,590 teče kot stranko na veliko različnih operacijskih sistemov in naprav. 22 00:01:08,590 --> 00:01:11,387 Dropbox desktop stranka ena najbolj znana, 23 00:01:11,387 --> 00:01:12,720 in eden od najbolj zanimivo. 24 00:01:12,720 --> 00:01:15,460 >> THOMAS CARRIERO: Torej Dropbox v bistvu traja vse datoteke 25 00:01:15,460 --> 00:01:19,500 da si dal v mapo in koščkih te datoteke v štirih megabajt kose. 26 00:01:19,500 --> 00:01:23,270 Torej bomo vzeli 100-megabajt Datoteka PDF in se bomo 27 00:01:23,270 --> 00:01:26,070 chunk IT v 25 štiri-megabajt kose. 28 00:01:26,070 --> 00:01:30,670 Ti kosi se nato šifrirani in Nato smo jih poslali na našem bloku strežnikih. 29 00:01:30,670 --> 00:01:35,980 >> ALEX Allain: Strežniki bloku shramba za bloke same, 30 00:01:35,980 --> 00:01:39,570 in da je vsak blok shranjeni v Strežnik blok s podatki 31 00:01:39,570 --> 00:01:43,990 in Shaw 356 hash tega bloka. 32 00:01:43,990 --> 00:01:48,280 To je zelo osnovni šifriranje primitivna ki povzema, v nekem smislu, 33 00:01:48,280 --> 00:01:53,140 podatki v zelo edinstven način To je edinstvena na navedene podatke. 34 00:01:53,140 --> 00:01:55,540 >> Lahko upload celotna slika naenkrat, 35 00:01:55,540 --> 00:02:00,120 vendar se izkaže, če vam da, res velike datoteke traja 36 00:02:00,120 --> 00:02:03,616 res dolgo časa za nalaganje, in če imate napako, ste od sreče 37 00:02:03,616 --> 00:02:04,740 in boste morali ponovno zagnati. 38 00:02:04,740 --> 00:02:07,620 >> Kaj bomo potem storiti je, da povemo en strežnik v našem sistemu, 39 00:02:07,620 --> 00:02:11,550 in kar imenujemo metapodatki strežnik, da je to hej datoteka, 40 00:02:11,550 --> 00:02:14,200 in je sestavljena iz po seznamu blokov. 41 00:02:14,200 --> 00:02:17,030 In smo šli gor haše identificirati tiste bloke 42 00:02:17,030 --> 00:02:18,770 namesto ponovnega nalaganje celoten blok. 43 00:02:18,770 --> 00:02:20,820 Metaserver nato preveri strežnikov blok, 44 00:02:20,820 --> 00:02:22,153 poskrbi bloki so tam. 45 00:02:22,153 --> 00:02:23,140 Če so, kot nalašč. 46 00:02:23,140 --> 00:02:24,040 Vse je v redu. 47 00:02:24,040 --> 00:02:26,400 >> THOMAS CARRIERO: Ko smo želijo, da v bistvu prenos 48 00:02:26,400 --> 00:02:30,050 datotek iz interneta, dajmo recimo, bomo rekli, da se v zadnjem metaserver 49 00:02:30,050 --> 00:02:33,090 Prvi, hej mi lahko poveste o tem, kje se nahaja ta datoteka je? 50 00:02:33,090 --> 00:02:37,230 In metaserver bo rekel, oh ta datoteka je dejansko 25 štirje MB veliko koščkih, 51 00:02:37,230 --> 00:02:38,210 in tukaj so. 52 00:02:38,210 --> 00:02:41,712 In potem bomo šli blok strežnik in dejansko prenesti vsako od teh koščkih. 53 00:02:41,712 --> 00:02:43,670 In potem bomo rekonstruirati datoteko od tam, 54 00:02:43,670 --> 00:02:45,086 in potem bomo začeli prenos. 55 00:02:45,086 --> 00:02:47,580 Ja, tako Dropbox poslov z lestvico v bistvu 56 00:02:47,580 --> 00:02:50,460 z zelo, zelo agresiven sharding. 57 00:02:50,460 --> 00:02:56,400 >> ALEX Allain: Sharding je, ko sprejmejo vse uporabnike v vašem zagon 58 00:02:56,400 --> 00:03:00,010 ali vaše podjetje in morda se Včasih je v eni podatkovni bazi, 59 00:03:00,010 --> 00:03:02,620 in da deluje super, dokler vas zadeti določeno število uporabnikov. 60 00:03:02,620 --> 00:03:04,578 In res, kaj hočeš storiti, je najti način, 61 00:03:04,578 --> 00:03:07,410 razdeli tistim, čez dva baze podatkov, ali morda več kot dva. 62 00:03:07,410 --> 00:03:10,830 Idealno bi bilo, dovolj, da si lahko ima vsak uporabnik na svetu. 63 00:03:10,830 --> 00:03:13,080 >> In tako, ko si Shard, kaj morate storiti, je ti 64 00:03:13,080 --> 00:03:16,830 najti nek način odločanja katero bazo podatkov, da gredo 65 00:03:16,830 --> 00:03:20,240 tisti, ki ne zahteva hitting osrednjo imenik. 66 00:03:20,240 --> 00:03:23,670 Ali pa je zelo hiter, poceni look-up centralni imenik. 67 00:03:23,670 --> 00:03:27,189 >> THOMAS CARRIERO: Nikoli nimamo Vse shranjeni v eni podatkovni bazi, 68 00:03:27,189 --> 00:03:28,980 ker to je skoraj Nikoli ne grem v merilu. 69 00:03:28,980 --> 00:03:33,970 Torej, namesto, kaj bomo storili, je, da vse da se informacije, vse datoteke, ki 70 00:03:33,970 --> 00:03:36,610 so shranjeni na metapodatke, Shard čez sto 71 00:03:36,610 --> 00:03:38,710 ali tisoče logičnih podatkovnih baz. 72 00:03:38,710 --> 00:03:42,900 In to pomeni, da ko imamo zaprosi za podatke porabnika 73 00:03:42,900 --> 00:03:46,890 bomo najprej rekli, hej, katero bazo podatkov informacije tega uporabnika shranjena v? 74 00:03:46,890 --> 00:03:49,852 Potem bomo pa v bistvu uporabite to odločitev, da gredo 75 00:03:49,852 --> 00:03:51,560 Ugotovijo, da se podatkovne zbirke in to je, če se bomo 76 00:03:51,560 --> 00:03:55,080 naložiti vse datoteke ali vse metapodatki o datotekah. 77 00:03:55,080 --> 00:03:56,464 >> Torej bomo uporabili veliko sharding. 78 00:03:56,464 --> 00:03:57,880 Vendar sharding ni vedno dovolj. 79 00:03:57,880 --> 00:04:00,380 Ste dejansko morali predpomnilnik Veliko skupnih zahtev, 80 00:04:00,380 --> 00:04:04,010 ker tudi tisti, podatkovna baza Poizvedbe lahko drago 81 00:04:04,010 --> 00:04:07,570 Tako smo tudi do agresivnega zajemanje strategije, da se prepričajte, da je večina 82 00:04:07,570 --> 00:04:10,310 Skupne zahteve so dokaj enostavno izračunati. 83 00:04:10,310 --> 00:04:14,630 In v bistvu, da naredi veliko hitrejši in omogoča delo ex lestvice. 84 00:04:14,630 --> 00:04:17,320 Tako da je na zelo na visoki ravni, kako Dropbox deluje. 85 00:04:17,320 --> 00:04:19,149 >> ALEX Allain: Jaz sem Alex Allain. 86 00:04:19,149 --> 00:04:20,857 >> THOMAS CARRIERO: In Jaz sem Thomas Carriero. 87 00:04:20,857 --> 00:04:22,579 ALEX Allain: In to je CS50. 88 00:04:22,579 --> 00:04:23,936