1 00:00:00,000 --> 00:00:00,409 2 00:00:00,409 --> 00:00:01,950 THOMAS Carriero: Ja sam Thomas Carriero. 3 00:00:01,950 --> 00:00:03,640 Ja sam softverski inženjer u Dropbox. 4 00:00:03,640 --> 00:00:05,250 >> ALEX Allain: Ja sam Alex Allain. 5 00:00:05,250 --> 00:00:08,200 Ja sam inženjer ovdje na Dropbox. 6 00:00:08,200 --> 00:00:11,320 >> THOMAS Carriero: Da, bio sam zapravo prva glava TF za CS50 7 00:00:11,320 --> 00:00:13,660 kada je David Malin preuzeo razred. 8 00:00:13,660 --> 00:00:17,010 Već sam učio CS50 za dva semestra 9 00:00:17,010 --> 00:00:20,700 Mike Smith, koji je bio prije profesor tamo. 10 00:00:20,700 --> 00:00:25,310 >> ALEX Allain: Pa ja zapravo nije potrajati CS50, ali sam ga dva puta TF. 11 00:00:25,310 --> 00:00:29,050 Jednom kao redoviti TF, i onda mi je na zadnjoj godini 12 00:00:29,050 --> 00:00:32,520 Bio sam zapravo glava TF od CS50, što je jako zabavno. 13 00:00:32,520 --> 00:00:34,270 THOMAS Carriero: Tako kada je David posegnuo 14 00:00:34,270 --> 00:00:38,647 mi o postavljanju Dropbox u CS50 uređaja, 15 00:00:38,647 --> 00:00:41,230 Bio sam jako uzbuđen, jer mi zapravo Linux klijenta, 16 00:00:41,230 --> 00:00:46,270 tako da većina naših korisnika koristiti bilo Windows ili klijenti Macintosh, 17 00:00:46,270 --> 00:00:50,940 ali Linux, Macintosh i Windows klijenti su zapravo vrlo slični. 18 00:00:50,940 --> 00:00:55,590 >> Dakle, ono što smo napravili je da smo unaprijed instaliran Dropbox Linux klijent u CS50 19 00:00:55,590 --> 00:00:59,990 aparata, i to radi baš kao i sve naše ostale korisnike Linux. 20 00:00:59,990 --> 00:01:02,210 >> ALEX Allain: Tako način Dropbox radi je to 21 00:01:02,210 --> 00:01:08,590 radi kao klijent na mnogo različitih operacijski sustavi i uređaji. 22 00:01:08,590 --> 00:01:11,387 Dropbox desktop klijent jedna od najpoznatijih, 23 00:01:11,387 --> 00:01:12,720 i jedan od najzanimljivijih. 24 00:01:12,720 --> 00:01:15,460 >> THOMAS Carriero: Tako Dropbox osnovi traje sve datoteke 25 00:01:15,460 --> 00:01:19,500 da li staviti u mapu i to komade te datoteke u četiri megabajta komade. 26 00:01:19,500 --> 00:01:23,270 Dakle, mi ćemo se 100 megabajta PDF datoteku i mi ćemo 27 00:01:23,270 --> 00:01:26,070 Komad ga u 25-četiri megabajt komade. 28 00:01:26,070 --> 00:01:30,670 Ti komadi onda su šifrirani i onda ćemo ih poslati na našim tiskanim poslužiteljima. 29 00:01:30,670 --> 00:01:35,980 >> ALEX Allain: Blok poslužitelji spremište za samih blokova, 30 00:01:35,980 --> 00:01:39,570 pa svaki blok se pohranjuju u blok poslužitelj s podacima 31 00:01:39,570 --> 00:01:43,990 i Shaw 356 hash tog bloka. 32 00:01:43,990 --> 00:01:48,280 To je vrlo osnovni enkripcija primitivni koja sažima, u nekom smislu, 33 00:01:48,280 --> 00:01:53,140 podaci u vrlo jedinstven način to je jedinstven za te podatke. 34 00:01:53,140 --> 00:01:55,540 >> Ti bi mogao uploadati Cijela datoteka odjednom, 35 00:01:55,540 --> 00:02:00,120 ali ispada ako to učinite da, stvarno velike datoteke zauzimaju 36 00:02:00,120 --> 00:02:03,616 jako dugo vremena za učitavanje, a ako imate neuspjeh, ti si od sreće 37 00:02:03,616 --> 00:02:04,740 i morate ga ponovo pokrenuti. 38 00:02:04,740 --> 00:02:07,620 >> Što ćemo onda je možemo reći drugi poslužitelj u našem sustavu, 39 00:02:07,620 --> 00:02:11,550 i ono što mi zovemo metapodataka poslužitelja, da hej ovo je sliku, 40 00:02:11,550 --> 00:02:14,200 a sastoji se od Sljedeći popis blokova. 41 00:02:14,200 --> 00:02:17,030 I prolazimo gore hashes identificirati one blokove 42 00:02:17,030 --> 00:02:18,770 nego re-upload cijeli blok. 43 00:02:18,770 --> 00:02:20,820 Metaserver zatim provjerava blok poslužitelje, 44 00:02:20,820 --> 00:02:22,153 čini da su blokovi su tu. 45 00:02:22,153 --> 00:02:23,140 Ako jesu, savršena. 46 00:02:23,140 --> 00:02:24,040 Sve je dobro. 47 00:02:24,040 --> 00:02:26,400 >> THOMAS Carriero: Kad smo žele preuzeti osnovi 48 00:02:26,400 --> 00:02:30,050 datoteka s Interneta, neka je recimo, mi ćemo reći da se u posljednje metaserver 49 00:02:30,050 --> 00:02:33,090 Prvo, hej može li mi reći o tome gdje se nalazi ova datoteka je? 50 00:02:33,090 --> 00:02:37,230 I metaserver će reći, oh ovu sliku je zapravo 25 četiri megabajta komade, 51 00:02:37,230 --> 00:02:38,210 a ovdje su. 52 00:02:38,210 --> 00:02:41,712 A onda ćemo otići blok poslužitelja i zapravo preuzeti svaki od tih komade. 53 00:02:41,712 --> 00:02:43,670 I onda ćemo rekonstruirati file od tamo, 54 00:02:43,670 --> 00:02:45,086 i onda ćemo početi s preuzimanjem. 55 00:02:45,086 --> 00:02:47,580 Da, tako Dropbox od ponude ljestvicom osnovi 56 00:02:47,580 --> 00:02:50,460 po vrlo, vrlo agresivna sharding. 57 00:02:50,460 --> 00:02:56,400 >> ALEX Allain: Sharding je kada poduzeti sve korisnike u svoj start up 58 00:02:56,400 --> 00:03:00,010 ili vaša tvrtka, a možda i oni Nekada je to bilo u jednoj bazi podataka, 59 00:03:00,010 --> 00:03:02,620 i to radi super, dok vas pogodio određeni broj korisnika. 60 00:03:02,620 --> 00:03:04,578 I stvarno ono što želite učiniti je pronaći neki način 61 00:03:04,578 --> 00:03:07,410 podijeliti onima preko dva baze podataka, ili možda i više od dva. 62 00:03:07,410 --> 00:03:10,830 U idealnom slučaju, dovoljno je znati imati svaki korisnik u svijetu. 63 00:03:10,830 --> 00:03:13,080 >> I tako kad Shard, ono što trebate učiniti je vas 64 00:03:13,080 --> 00:03:16,830 naći neki način odlučivanja koja baza ići 65 00:03:16,830 --> 00:03:20,240 za koji ne zahtijeva udaranje središnji katalog. 66 00:03:20,240 --> 00:03:23,670 Ili je to možda vrlo brzo, jeftini pregledna središnja imenik. 67 00:03:23,670 --> 00:03:27,189 >> THOMAS Carriero: Mi nikada sve se pohranjuju u jednu bazu podataka, 68 00:03:27,189 --> 00:03:28,980 jer to je gotovo nikada ne ide na ljestvici. 69 00:03:28,980 --> 00:03:33,970 Dakle, umjesto toga, ono što ćemo učiniti je poduzeti sve te informacije, sve datoteke 70 00:03:33,970 --> 00:03:36,610 pohranjuju se na metapodacima, Krhotina na stotine 71 00:03:36,610 --> 00:03:38,710 ili tisuće logičkih baza podataka. 72 00:03:38,710 --> 00:03:42,900 A to znači da, kada imamo Zahtjev za korisnika informacija, 73 00:03:42,900 --> 00:03:46,890 prvo ću reći, hej koja se baza podataka Je li to Korisnički podaci pohranjeni u? 74 00:03:46,890 --> 00:03:49,852 Onda ćemo osnovi koristiti tu odluku otići 75 00:03:49,852 --> 00:03:51,560 pronaći tu bazu podataka i to je mjesto gdje ćemo se 76 00:03:51,560 --> 00:03:55,080 učitati sve datoteke ili sve metapodataka o datotekama. 77 00:03:55,080 --> 00:03:56,464 >> Dakle, mi koristimo puno sharding. 78 00:03:56,464 --> 00:03:57,880 Ali sharding nije uvijek dovoljno. 79 00:03:57,880 --> 00:04:00,380 Vi zapravo potrebno za cache puno zajedničkih zahtjeva, 80 00:04:00,380 --> 00:04:04,010 jer čak i oni baze upita može biti skupo 81 00:04:04,010 --> 00:04:07,570 tako smo i učinili agresivno hvatanje strategije kako bi bili sigurni da je većina 82 00:04:07,570 --> 00:04:10,310 zajednički zahtjevi vrlo lako izračunati. 83 00:04:10,310 --> 00:04:14,630 A zapravo se to čini puno brže i što ga čini rad ex ljestvicu. 84 00:04:14,630 --> 00:04:17,320 Tako da je na vrlo na visokoj razini kako Dropbox radi. 85 00:04:17,320 --> 00:04:19,149 >> ALEX Allain: Ja sam Alex Allain. 86 00:04:19,149 --> 00:04:20,857 >> THOMAS Carriero: A Ja sam Thomas Carriero. 87 00:04:20,857 --> 00:04:22,579 ALEX Allain: I ovo je CS50. 88 00:04:22,579 --> 00:04:23,936