1 00:00:00,000 --> 00:00:00,409 2 00:00:00,409 --> 00:00:01,950 THOMAS carrier: Som Thomas Carrier. 3 00:00:01,950 --> 00:00:03,640 Som softvérový inžinier na Dropbox. 4 00:00:03,640 --> 00:00:05,250 >> ALEX ALLAIN: Ja som Alex Allain. 5 00:00:05,250 --> 00:00:08,200 Som inžinier tu na Dropbox. 6 00:00:08,200 --> 00:00:11,320 >> THOMAS carrier: Áno, bol som vlastne prvá hlava TF pre CS50 7 00:00:11,320 --> 00:00:13,660 keď David Malin prevzal triedu. 8 00:00:13,660 --> 00:00:17,010 Už som sa učil CS50 dva semestre 9 00:00:17,010 --> 00:00:20,700 Mike Smith, ktorý bol pred profesor tam. 10 00:00:20,700 --> 00:00:25,310 >> ALEX ALLAIN: Takže som vlastne robil nie sa CS50, ale dvakrát som to urobil TF to. 11 00:00:25,310 --> 00:00:29,050 Potom, čo ako bežné TF, a potom sa môj nadriadený rok 12 00:00:29,050 --> 00:00:32,520 Bol som vlastne hlava TF z CS50, čo bolo veľa zábavy. 13 00:00:32,520 --> 00:00:34,270 THOMAS Carrier: Tak keď David natiahol 14 00:00:34,270 --> 00:00:38,647 mi o nastavenie Dropbox v CS50 spotrebiče 15 00:00:38,647 --> 00:00:41,230 Bol som naozaj nadšený, pretože v skutočnosti máme klienta Linux, 16 00:00:41,230 --> 00:00:46,270 takže väčšina našich užívateľov používa buď Windows alebo klienti Macintosh, 17 00:00:46,270 --> 00:00:50,940 ale Linux, Macintosh a Windows klienti sú v skutočnosti veľmi podobné. 18 00:00:50,940 --> 00:00:55,590 >> Takže to, čo sme urobili je, že sme pre-nainštalované klient Dropbox Linux v CS50 19 00:00:55,590 --> 00:00:59,990 zariadenie, a to beží, rovnako ako všetky naše ostatné užívateľov Linuxu. 20 00:00:59,990 --> 00:01:02,210 >> ALEX ALLAIN: Tak spôsob, ako Dropbox funguje, je to 21 00:01:02,210 --> 00:01:08,590 beží ako klient na mnohých rôznych operačné systémy a zariadenia. 22 00:01:08,590 --> 00:01:11,387 Desktop klient Dropbox je jeden z najviac dobre známy, 23 00:01:11,387 --> 00:01:12,720 a jeden z najzaujímavejších. 24 00:01:12,720 --> 00:01:15,460 >> THOMAS carrier: Tak Dropbox v podstate sa všetky súbory 25 00:01:15,460 --> 00:01:19,500 ktoré ste vložili do zložky a kúsky tieto súbory do štyroch megabajt kúsky. 26 00:01:19,500 --> 00:01:23,270 Takže budeme mať 100 megabajtov Súbor PDF a my 27 00:01:23,270 --> 00:01:26,070 kus do 25 štyri megabajt kúsky. 28 00:01:26,070 --> 00:01:30,670 Tieto kusy sú potom šifrovaný a potom poslať do nášho bloku servery. 29 00:01:30,670 --> 00:01:35,980 >> ALEX ALLAIN: Blok servery sú úložisko pre samotné bloky, 30 00:01:35,980 --> 00:01:39,570 a preto každý blok je uložený v blok server s dátami 31 00:01:39,570 --> 00:01:43,990 a Shaw 356 hash tohto bloku. 32 00:01:43,990 --> 00:01:48,280 To je veľmi jednoduchý šifrovací primitívne , Ktorý sumarizuje, v určitom zmysle, 33 00:01:48,280 --> 00:01:53,140 dáta vo veľmi jedinečným spôsobom to je jedinečné týchto údajov. 34 00:01:53,140 --> 00:01:55,540 >> Dalo by sa nahrať celý súbor naraz, 35 00:01:55,540 --> 00:02:00,120 ale ukázalo sa, ak nechcete že, naozaj veľké súbory zaberajú 36 00:02:00,120 --> 00:02:03,616 naozaj dlhá doba nahrať, a ak máte poruchu, máte smolu 37 00:02:03,616 --> 00:02:04,740 a musíte ju reštartovať. 38 00:02:04,740 --> 00:02:07,620 >> To, čo potom robiť, je, že sme povedať, iný server v našom systéme, 39 00:02:07,620 --> 00:02:11,550 a to, čo nazývame metadáta servera, že hej to je súbor, 40 00:02:11,550 --> 00:02:14,200 a to v zložení Nasledujúci zoznam blokov. 41 00:02:14,200 --> 00:02:17,030 A my sme prejsť do hodnoty hash identifikovať tie bloky 42 00:02:17,030 --> 00:02:18,770 skôr ako re-nahrávanie celý blok. 43 00:02:18,770 --> 00:02:20,820 MetaServer potom kontroluje bloku servery, 44 00:02:20,820 --> 00:02:22,153 zabezpečuje, že bloky sú tam. 45 00:02:22,153 --> 00:02:23,140 Ak sú, perfektné. 46 00:02:23,140 --> 00:02:24,040 Všetko je dobré. 47 00:02:24,040 --> 00:02:26,400 >> THOMAS carrier: Keď sme Chcete podstate k stiahnutiu 48 00:02:26,400 --> 00:02:30,050 súborov z internetu, nech je to povedzme, budeme hovoriť na posledný MetaServer 49 00:02:30,050 --> 00:02:33,090 Prvý, hej môžete mi povedať, o tom, kde sa nachádza tento súbor je? 50 00:02:33,090 --> 00:02:37,230 A MetaServer povedia, ach tento súbor je v skutočnosti 25 štyri-megabyte kúsky, 51 00:02:37,230 --> 00:02:38,210 a tu sú. 52 00:02:38,210 --> 00:02:41,712 A potom pôjdeme blokové servera a skutočne stiahnuť každý z týchto blokov. 53 00:02:41,712 --> 00:02:43,670 A potom budeme rekonštruovať súbor odtiaľ, 54 00:02:43,670 --> 00:02:45,086 a potom budeme chcete spustiť preberanie. 55 00:02:45,086 --> 00:02:47,580 Áno, tak Dropbox obchodov so stupnicou v podstate 56 00:02:47,580 --> 00:02:50,460 veľmi, veľmi agresívny sharding. 57 00:02:50,460 --> 00:02:56,400 >> ALEX ALLAIN: Sharding je, keď ste vziať všetkých používateľov vo vašej začiatku až 58 00:02:56,400 --> 00:03:00,010 alebo vaša spoločnosť, a možno, že používa sa v jednej databáze, 59 00:03:00,010 --> 00:03:02,620 a že funguje skvele, kým hit určitý počet užívateľov. 60 00:03:02,620 --> 00:03:04,578 A naozaj to, čo chceš urobiť, je nájsť nejaký spôsob, 61 00:03:04,578 --> 00:03:07,410 rozdeliť tie cez dve databázy, alebo možno viac ako dve. 62 00:03:07,410 --> 00:03:10,830 V ideálnom prípade tak, že môžete mať každý užívateľ na svete. 63 00:03:10,830 --> 00:03:13,080 >> A tak, keď sa črep, to, čo robíte, je vám 64 00:03:13,080 --> 00:03:16,830 nájsť nejaký spôsob, ako rozhodnúť, ktoré databázy ísť 65 00:03:16,830 --> 00:03:20,240 sa, že nevyžaduje biť centrálny adresár. 66 00:03:20,240 --> 00:03:23,670 Alebo možno, že je to veľmi rýchle, lacné look-up centrálny adresár. 67 00:03:23,670 --> 00:03:27,189 >> THOMAS carrier: Nikdy sme sa všetko uložené v jednej databáze, 68 00:03:27,189 --> 00:03:28,980 pretože to je takmer nikdy meradle. 69 00:03:28,980 --> 00:03:33,970 Takže namiesto toho, čo budeme robiť, je mať všetky že údaje, všetky súbory, ktoré 70 00:03:33,970 --> 00:03:36,610 sú uložené na metadáta, Shard celé stovky 71 00:03:36,610 --> 00:03:38,710 alebo tisíce logických databáz. 72 00:03:38,710 --> 00:03:42,900 A to znamená, že ak máme žiadosť o informácie užívateľa, 73 00:03:42,900 --> 00:03:46,890 budeme najprv povedať, hej, ktoré databázy sú informácie uživatelův uložené v? 74 00:03:46,890 --> 00:03:49,852 Potom sme si v podstate použitie tohto rozhodnutia ísť 75 00:03:49,852 --> 00:03:51,560 zistíte, že databáza a to je, kde budeme 76 00:03:51,560 --> 00:03:55,080 načítať všetky súbory alebo všetky metadáta o súboroch. 77 00:03:55,080 --> 00:03:56,464 >> Tak sme sa použiť veľa sharding. 78 00:03:56,464 --> 00:03:57,880 Ale sharding nie je vždy dosť. 79 00:03:57,880 --> 00:04:00,380 Ste skutočne potrebujú do medzipamäte veľa spoločných požiadaviek, 80 00:04:00,380 --> 00:04:04,010 pretože aj tie databázy Otázky môžu byť drahé 81 00:04:04,010 --> 00:04:07,570 tak urobíme aj agresívne snímanie stratégie, aby sa ubezpečil, že najviac 82 00:04:07,570 --> 00:04:10,310 spoločné požiadavky sú pomerne ľahko vypočítať. 83 00:04:10,310 --> 00:04:14,630 A v podstate, že robí veľa rýchlejšie, a to robí to funguje ex meradlo. 84 00:04:14,630 --> 00:04:17,320 Tak to je na veľmi na vysokej úrovni, ako Dropbox funguje. 85 00:04:17,320 --> 00:04:19,149 >> ALEX ALLAIN: Ja som Alex Allain. 86 00:04:19,149 --> 00:04:20,857 >> THOMAS Carrier: A Som Thomas Carrier. 87 00:04:20,857 --> 00:04:22,579 ALEX ALLAIN: A je to CS50. 88 00:04:22,579 --> 00:04:23,936