1 00:00:00,000 --> 00:00:00,409 2 00:00:00,409 --> 00:00:01,950 THOMAS Carriero: Ma olen Thomas Carriero. 3 00:00:01,950 --> 00:00:03,640 Olen tarkvara insener Dropbox. 4 00:00:03,640 --> 00:00:05,250 >> ALEX ALLAIN: Ma olen Alex Allain. 5 00:00:05,250 --> 00:00:08,200 Olen insener siin Dropbox. 6 00:00:08,200 --> 00:00:11,320 >> THOMAS Carriero: Jah, ma olin tegelikult esimene juht TF CS50 7 00:00:11,320 --> 00:00:13,660 kui David Malin võttis üle klassi. 8 00:00:13,660 --> 00:00:17,010 Mul oli juba õpetanud CS50 kaks semestrit 9 00:00:17,010 --> 00:00:20,700 Mike Smith, kes oli Enne professor seal. 10 00:00:20,700 --> 00:00:25,310 >> ALEX ALLAIN: Ma tegelikult ei võtta CS50, kuid ma ei TF see kaks korda. 11 00:00:25,310 --> 00:00:29,050 Kui tavalise TF, ja siis minu vanemate aastas 12 00:00:29,050 --> 00:00:32,520 Ma olin tegelikult pea TF kohta CS50, mis oli väga lõbus. 13 00:00:32,520 --> 00:00:34,270 THOMAS Carriero: So kui David ulatasid 14 00:00:34,270 --> 00:00:38,647 mulle seadistamise kohta Dropbox on CS50 seadme 15 00:00:38,647 --> 00:00:41,230 Olin väga põnevil, sest meil tegelikult on Linux klient, 16 00:00:41,230 --> 00:00:46,270 nii enamik meie kasutajatele kasutada kas Windows või Macintosh klientidele 17 00:00:46,270 --> 00:00:50,940 kuid Linux, Macintosh ja Windows kliendid on kõik tegelikult väga sarnased. 18 00:00:50,940 --> 00:00:55,590 >> See, mida me tegime: eelinstalleeritud Dropbox Linux kliendi CS50 19 00:00:55,590 --> 00:00:59,990 seadme ja see töötab nagu kõik meie teised Linuxi kasutajad. 20 00:00:59,990 --> 00:01:02,210 >> ALEX ALLAIN: So tee Dropbox töötab, on see 21 00:01:02,210 --> 00:01:08,590 jookseb kui klient on palju erinevaid operatsioonisüsteemide ja seadmeid. 22 00:01:08,590 --> 00:01:11,387 Dropbox desktop kliendile on üks kõige tuntum, 23 00:01:11,387 --> 00:01:12,720 ja üks kõige huvitavam. 24 00:01:12,720 --> 00:01:15,460 >> THOMAS Carriero: Nii Dropbox põhimõtteliselt võtab kõik failid 25 00:01:15,460 --> 00:01:19,500 et paned kausta ja see tükkideks need failid neli megabaiti tükkideks. 26 00:01:19,500 --> 00:01:23,270 Nii et me võtame 100-megabaidine PDF-faili ja me 27 00:01:23,270 --> 00:01:26,070 patakas see 25 neli megabaiti tükkideks. 28 00:01:26,070 --> 00:01:30,670 Need tükid on siis krüpteeritud ja siis saatke need meie blokk servereid. 29 00:01:30,670 --> 00:01:35,980 >> ALEX ALLAIN: plokk serverid ladustamise plokid ise 30 00:01:35,980 --> 00:01:39,570 ja nii iga plokk on salvestatud plokk server koos andmetega 31 00:01:39,570 --> 00:01:43,990 ja Shaw 356 hash selle blokeerida. 32 00:01:43,990 --> 00:01:48,280 See on väga lihtne krüpteerimine primitiivne , mis võtab kokku, mõnes mõttes, 33 00:01:48,280 --> 00:01:53,140 andmeid väga originaalsel moel , mis on unikaalne, et andmed. 34 00:01:53,140 --> 00:01:55,540 >> Sa võid üles laadida kogu pilti korraga 35 00:01:55,540 --> 00:02:00,120 kuid selgub, kui sa et tõesti suuri faile võtta 36 00:02:00,120 --> 00:02:03,616 väga palju aega laadida, ja kui teil on rike, siis oled õnne 37 00:02:03,616 --> 00:02:04,740 ja sa pead uuesti käivitada. 38 00:02:04,740 --> 00:02:07,620 >> Mida me siis teha, on meil öelda teine ​​server meie süsteemis, 39 00:02:07,620 --> 00:02:11,550 ja see, mida me nimetame metaandmed server, et hei see on fail, 40 00:02:11,550 --> 00:02:14,200 ja see koosneb Järgnev loetelu plokke. 41 00:02:14,200 --> 00:02:17,030 Ja me mööda üles räsisid teha kindlaks need plokid 42 00:02:17,030 --> 00:02:18,770 mitte uuesti üleslaadimist kogu plokk. 43 00:02:18,770 --> 00:02:20,820 Metaserver siis kontrollib plokk serverid 44 00:02:20,820 --> 00:02:22,153 tagab plokid on seal. 45 00:02:22,153 --> 00:02:23,140 Kui nad on, täiuslik. 46 00:02:23,140 --> 00:02:24,040 Kõik on hea. 47 00:02:24,040 --> 00:02:26,400 >> THOMAS Carriero: Kui me tahan põhiliselt alla 48 00:02:26,400 --> 00:02:30,050 fail internet, olgem ütleme, me ütleme, et viimase metaserver 49 00:02:30,050 --> 00:02:33,090 Esiteks hey kas sa mulle öelda kohta, kus see fail asub? 50 00:02:33,090 --> 00:02:37,230 Ja metaserver ütlevad, oh seda faili tegelikult 25 neli megabaiti tükkideks, 51 00:02:37,230 --> 00:02:38,210 ja siin nad on. 52 00:02:38,210 --> 00:02:41,712 Ja siis me lähme plokk server ja tegelikult alla laadida kõik need tükkideks. 53 00:02:41,712 --> 00:02:43,670 Ja siis me taastada file sealt 54 00:02:43,670 --> 00:02:45,086 ja siis me alustada allalaadimist. 55 00:02:45,086 --> 00:02:47,580 Jah, nii Dropbox tehinguid skaala põhiliselt 56 00:02:47,580 --> 00:02:50,460 väga, väga agressiivne sharding. 57 00:02:50,460 --> 00:02:56,400 >> ALEX ALLAIN: Sharding on siis, kui võtma kõik kasutajad oma alustamiseks 58 00:02:56,400 --> 00:03:00,010 või teie ettevõtte ja võib-olla nad kasutatakse olla ühes andmebaasis 59 00:03:00,010 --> 00:03:02,620 ja mis töötab hästi, kuni sa tabanud teatud hulk kasutajaid. 60 00:03:02,620 --> 00:03:04,578 Ja tõesti, mida sa tahad tegema, on leida õige viis 61 00:03:04,578 --> 00:03:07,410 jagada neid üle kahe andmebaasid, või võib-olla rohkem kui kaks. 62 00:03:07,410 --> 00:03:10,830 Ideaalis küll, et saate on iga kasutaja kogu maailmas. 63 00:03:10,830 --> 00:03:13,080 >> Ja kui sa Kild mida te teete, on teil 64 00:03:13,080 --> 00:03:16,830 leida õige viis otsustamisel mis andmebaasis minna 65 00:03:16,830 --> 00:03:20,240 et see ei nõua lööb keskne kataloog. 66 00:03:20,240 --> 00:03:23,670 Või äkki see on väga kiire, odav look-up keskne kataloog. 67 00:03:23,670 --> 00:03:27,189 >> THOMAS Carriero: Me ei ole kunagi kõik salvestatud ühe andmebaasi 68 00:03:27,189 --> 00:03:28,980 sest see on peaaegu kunagi mõõtkavas. 69 00:03:28,980 --> 00:03:33,970 Nii et selle asemel, mida me teeme, on võtta kõik et teave, kõik failid 70 00:03:33,970 --> 00:03:36,610 salvestatakse metaandmete Kildu sadades 71 00:03:36,610 --> 00:03:38,710 või tuhandeid loogiline andmebaase. 72 00:03:38,710 --> 00:03:42,900 Ja see tähendab, et kui meil on taotlema kasutaja andmed, 73 00:03:42,900 --> 00:03:46,890 me kõigepealt öelda, hei, mida andmebaas Kas see on kasutaja andmed salvestatakse? 74 00:03:46,890 --> 00:03:49,852 Siis me põhimõtteliselt kasutada, et otsus minna 75 00:03:49,852 --> 00:03:51,560 leiavad, et andmebaas ja see on koht, kus me 76 00:03:51,560 --> 00:03:55,080 laadida kõik failid või kõik metaandmete failid. 77 00:03:55,080 --> 00:03:56,464 >> Nii et me kasutame palju sharding. 78 00:03:56,464 --> 00:03:57,880 Aga sharding ei ole alati piisav. 79 00:03:57,880 --> 00:04:00,380 Sa tegelikult vaja vahemälu palju ühiseid taotlustest 80 00:04:00,380 --> 00:04:04,010 sest isegi need andmebaas päringuid võib olla kulukas 81 00:04:04,010 --> 00:04:07,570 nii teeme ka agressiivne hõivamine strateegiate veenduda, et kõige 82 00:04:07,570 --> 00:04:10,310 ühine taotlused on üsna lihtne arvutada. 83 00:04:10,310 --> 00:04:14,630 Ja põhimõtteliselt, et teeb palju kiiremini ja see muudab töö ex skaalal. 84 00:04:14,630 --> 00:04:17,320 Nii et see on väga kõrgetasemeline kuidas Dropbox töötab. 85 00:04:17,320 --> 00:04:19,149 >> ALEX ALLAIN: Ma olen Alex Allain. 86 00:04:19,149 --> 00:04:20,857 >> THOMAS Carriero Ja Ma olen Thomas Carriero. 87 00:04:20,857 --> 00:04:22,579 ALEX ALLAIN: Ja see on CS50. 88 00:04:22,579 --> 00:04:23,936