1 00:00:00,000 --> 00:00:00,409 2 00:00:00,409 --> 00:00:01,950 THOMAS CARRIERO: Aš Tomas Carriero. 3 00:00:01,950 --> 00:00:03,640 Aš programinės įrangos inžinierius Dropbox. 4 00:00:03,640 --> 00:00:05,250 >> ALEX Allainą: Aš Aleksas Allainą. 5 00:00:05,250 --> 00:00:08,200 Esu inžinierius čia Dropbox. 6 00:00:08,200 --> 00:00:11,320 >> THOMAS CARRIERO: Taip, aš buvau iš tikrųjų pirmasis vadovas TF CS50 7 00:00:11,320 --> 00:00:13,660 Dovydas Malin perėmė klasę. 8 00:00:13,660 --> 00:00:17,010 Aš jau dėsto CS50 du semestrus 9 00:00:17,010 --> 00:00:20,700 su tuo, kas buvo Mike Smith, prieš profesorius ten. 10 00:00:20,700 --> 00:00:25,310 >> ALEX Allainą: Taigi aš iš tikrųjų ne imtis CS50, bet aš TF jį du kartus. 11 00:00:25,310 --> 00:00:29,050 Kai, kaip reguliariai TF, ir tada mano vyresnysis metus 12 00:00:29,050 --> 00:00:32,520 Aš iš tikrųjų buvo galvos TF iš CS50, kuris buvo smagi. 13 00:00:32,520 --> 00:00:34,270 THOMAS CARRIERO: Taigi Dovydas ištiesė 14 00:00:34,270 --> 00:00:38,647 man apie steigiant ZMI į CS50 prietaiso, 15 00:00:38,647 --> 00:00:41,230 Man buvo tikrai malonu, nes mes iš tikrųjų turime Linux kliento, 16 00:00:41,230 --> 00:00:46,270 todėl dauguma mūsų vartotojų naudoja arba "Windows" arba "Macintosh" klientai, 17 00:00:46,270 --> 00:00:50,940 bet Linux, Macintosh ir Windows klientai yra visi iš tikrųjų labai panašūs. 18 00:00:50,940 --> 00:00:55,590 >> Taigi, ką mes padarėme, tai mes iš anksto įdiegta ZMI Linux kliento į CS50 19 00:00:55,590 --> 00:00:59,990 prietaisas ir jis veikia kaip visų mūsų kitų Linux vartotojams. 20 00:00:59,990 --> 00:01:02,210 >> ALEX Allainą: Taigi būdas ZMI veikia tai 21 00:01:02,210 --> 00:01:08,590 veikia kaip daug skirtingų klientui operacinės sistemos ir prietaisai. 22 00:01:08,590 --> 00:01:11,387 ZMI darbalaukio klientas viena iš labiausiai gerai žinomi, 23 00:01:11,387 --> 00:01:12,720 ir vienas iš įdomiausių. 24 00:01:12,720 --> 00:01:15,460 >> THOMAS CARRIERO: Taigi ZMI iš esmės priima visus failus 25 00:01:15,460 --> 00:01:19,500 kad jūs įtraukėte į aplanką ir ji Dalys tie failai į keturių megabaitų gabaliukus. 26 00:01:19,500 --> 00:01:23,270 Taigi, mes priimsime 100 megabaitai PDF failas, ir mes 27 00:01:23,270 --> 00:01:26,070 riekė jį į 25 keturių megabaitų gabaliukus. 28 00:01:26,070 --> 00:01:30,670 Šie gabalai yra tada šifruojami ir tada mes siunčiame juos į mūsų bendrąsias serverių. 29 00:01:30,670 --> 00:01:35,980 >> ALEX Allainą: Blokas serveriai patiems blokų saugojimui, 30 00:01:35,980 --> 00:01:39,570 ir todėl kiekvienas blokas yra saugomi blokas serveris su duomenų 31 00:01:39,570 --> 00:01:43,990 ir Shaw 356 maišos tos blokas. 32 00:01:43,990 --> 00:01:48,280 Tai labai paprastas šifravimo primityvus kad apibendrina, tam tikra prasme, 33 00:01:48,280 --> 00:01:53,140 Į labai unikaliu būdu duomenys tai unikalus šių duomenų. 34 00:01:53,140 --> 00:01:55,540 >> Jūs galite įkelti Visa failą vienu metu, 35 00:01:55,540 --> 00:02:00,120 bet it turns out, jei jūs kad, tikrai didelius failus imtis 36 00:02:00,120 --> 00:02:03,616 tikrai ilgai įkelti, ir, jei turite nepakankamumas, jums nesiseka 37 00:02:03,616 --> 00:02:04,740 ir turite paleisti jį. 38 00:02:04,740 --> 00:02:07,620 >> Ką tada mes darome, yra pasakojame kitas mūsų sistemos serverio, 39 00:02:07,620 --> 00:02:11,550 ir ką mes vadiname metaduomenis serverio, kad ei tai yra byla, 40 00:02:11,550 --> 00:02:14,200 ir tai sudaro Toliau pateikiamas sąrašas blokus. 41 00:02:14,200 --> 00:02:17,030 Ir mes pass up maišas nustatyti tuos blokus 42 00:02:17,030 --> 00:02:18,770 Užuot pakartotinai įkelti visą kvartalą. 43 00:02:18,770 --> 00:02:20,820 Metaserver tada tikrina blokas serverius, 44 00:02:20,820 --> 00:02:22,153 užtikrina blokai yra ten. 45 00:02:22,153 --> 00:02:23,140 Jei jie yra, tobula. 46 00:02:23,140 --> 00:02:24,040 Viskas yra gerai. 47 00:02:24,040 --> 00:02:26,400 >> THOMAS CARRIERO: Kai mes nori iš esmės parsisiųsti 48 00:02:26,400 --> 00:02:30,050 failą iš interneto, galime tarkim, mes pasakyti į paskutinę metaserver 49 00:02:30,050 --> 00:02:33,090 pirma, hey galite man pasakyti apie tai, kur Šis failas yra įsikūrusi? 50 00:02:33,090 --> 00:02:37,230 Ir metaserver sakys, oi šį failą s faktiškai 25 keturių megabaitų gabaliukus, 51 00:02:37,230 --> 00:02:38,210 ir čia jie. 52 00:02:38,210 --> 00:02:41,712 Ir tada mes eiti blokas serverį ir iš tikrųjų parsisiųsti kiekvieną iš šių gabaliukus. 53 00:02:41,712 --> 00:02:43,670 Ir tada mes rekonstruoti failą iš ten, 54 00:02:43,670 --> 00:02:45,086 ir tada mes pradėti atsisiuntimą. 55 00:02:45,086 --> 00:02:47,580 Taip, taip, ZMI sandorių su skale iš esmės 56 00:02:47,580 --> 00:02:50,460 iki labai, labai agresyvus sharding. 57 00:02:50,460 --> 00:02:56,400 >> ALEX Allainą: Sharding yra, kai jūs imtis visų vartotojų savo pradžios iki 58 00:02:56,400 --> 00:03:00,010 arba jūsų įmonė, o gal jie naudojamas būti vienoje duomenų bazėje, 59 00:03:00,010 --> 00:03:02,620 ir kad puikiai veikia, kol jums pasiekė tam tikrą skaičių vartotojams. 60 00:03:02,620 --> 00:03:04,578 Ir tikrai tai, ko norite reikia padaryti, tai rasti tam tikru būdu 61 00:03:04,578 --> 00:03:07,410 padalinti tiems, dviejuose duomenų bazės, o gal daugiau nei du. 62 00:03:07,410 --> 00:03:10,830 Idealiu atveju, pakankamai, kad jūs galite turėti kiekvienam vartotojui pasaulyje. 63 00:03:10,830 --> 00:03:13,080 >> Ir todėl, kai jūs Shard, ką jūs darote, yra jums 64 00:03:13,080 --> 00:03:16,830 radote nuspręsti, kaip kuria duomenų baze eiti 65 00:03:16,830 --> 00:03:20,240 į kuri nereikalauja pataikyti pagrindinį katalogą. 66 00:03:20,240 --> 00:03:23,670 O gal tai labai greitai, pigus išvaizda centrinis katalogas. 67 00:03:23,670 --> 00:03:27,189 >> THOMAS CARRIERO: Mes niekada viskas saugomi vienoje duomenų bazėje, 68 00:03:27,189 --> 00:03:28,980 nes tai beveik niekada mastelį. 69 00:03:28,980 --> 00:03:33,970 Taigi, vietoj to, ką mes bus padaryti, tai imtis visų kad informacija, visus failus, 70 00:03:33,970 --> 00:03:36,610 yra saugomi metaduomenys, Shard per šimtus 71 00:03:36,610 --> 00:03:38,710 ar tūkstančių loginių duomenų bazių. 72 00:03:38,710 --> 00:03:42,900 Ir tai reiškia, kad, kai mes turime paprašyti naudotojo informacijos 73 00:03:42,900 --> 00:03:46,890 mes pirmiausia tarkite: ei, kuri duomenų bazė yra šio vartotojo saugoma informacija? 74 00:03:46,890 --> 00:03:49,852 Tada mes iš esmės naudoti tą sprendimą eiti 75 00:03:49,852 --> 00:03:51,560 pastebėsite, kad duomenų bazę ir tai, kur mes tikrai 76 00:03:51,560 --> 00:03:55,080 įkelti visus failus arba visus Metaduomenys apie failus. 77 00:03:55,080 --> 00:03:56,464 >> Taigi mes naudojame sharding daug. 78 00:03:56,464 --> 00:03:57,880 Bet sharding ne visada pakanka. 79 00:03:57,880 --> 00:04:00,380 Jūs iš tikrųjų reikia talpyklą bendrų prašymų daug, 80 00:04:00,380 --> 00:04:04,010 nes net ir tie, duomenų bazė klausimai gali būti brangus 81 00:04:04,010 --> 00:04:07,570 todėl mes taip pat padaryti agresyvią gaudymo strategijas, įsitikinkite, kad labiausiai 82 00:04:07,570 --> 00:04:10,310 bendri prašymai gana lengva apskaičiuoti. 83 00:04:10,310 --> 00:04:14,630 Ir iš esmės, kad daro daug greičiau ir ji leidžia dirbti ex mastą. 84 00:04:14,630 --> 00:04:17,320 Štai tuo labai aukšto lygio, kaip "Dropbox" veikia. 85 00:04:17,320 --> 00:04:19,149 >> ALEX Allainą: Aš Aleksas Allainą. 86 00:04:19,149 --> 00:04:20,857 >> THOMAS CARRIERO: O Aš Tomas Carriero. 87 00:04:20,857 --> 00:04:22,579 ALEX Allainą: Ir tai yra CS50. 88 00:04:22,579 --> 00:04:23,936