1 00:00:00,000 --> 00:00:00,409 2 00:00:00,409 --> 00:00:01,950 THOMAS Carriero: Mimi Thomas Carriero. 3 00:00:01,950 --> 00:00:03,640 Mimi nina mhandisi wa programu katika Dropbox. 4 00:00:03,640 --> 00:00:05,250 >> ALEX Allain: Mimi Alex Allain. 5 00:00:05,250 --> 00:00:08,200 Mimi ni mhandisi hapa Dropbox. 6 00:00:08,200 --> 00:00:11,320 >> THOMAS Carriero: Ndiyo, nilikuwa kweli kwanza kichwa TF kwa CS50 7 00:00:11,320 --> 00:00:13,660 Daudi Malin alichukua juu ya darasa. 8 00:00:13,660 --> 00:00:17,010 Nilikuwa tayari kufundisha CS50 kwa semesters mbili 9 00:00:17,010 --> 00:00:20,700 na Mike Smith, ambaye alikuwa profesa kabla ya hapo. 10 00:00:20,700 --> 00:00:25,310 >> ALEX Allain: Kwa hiyo mimi kwa kweli si kuchukua CS50, lakini mimi TF ni mara mbili. 11 00:00:25,310 --> 00:00:29,050 Mara baada ya kama TF mara kwa mara, na kisha mwaka wangu wa mwandamizi 12 00:00:29,050 --> 00:00:32,520 Mimi kwa kweli kichwa TF ya CS50, ambayo ilikuwa mengi ya furaha. 13 00:00:32,520 --> 00:00:34,270 THOMAS Carriero: Hivyo Daudi kufikiwa nje 14 00:00:34,270 --> 00:00:38,647 na mimi kuhusu kuanzisha Dropbox katika CS50 appliance, 15 00:00:38,647 --> 00:00:41,230 Mimi kwa kweli nilikuwa msisimko, kwa sababu sisi kweli kuwa Linux mteja, 16 00:00:41,230 --> 00:00:46,270 hivyo wengi wa watumiaji wetu kutumia aidha Windows au wateja Macintosh, 17 00:00:46,270 --> 00:00:50,940 lakini Linux, Macintosh, na Windows wateja wote ni kweli sawa sana. 18 00:00:50,940 --> 00:00:55,590 >> Hivyo tulichokifanya ni sisi kabla ya imewekwa Dropbox Linux mteja katika CS50 19 00:00:55,590 --> 00:00:59,990 appliance, na anaendesha tu kama yetu yote ya watumiaji wengine Linux. 20 00:00:59,990 --> 00:01:02,210 >> ALEX Allain: Hivyo njia Dropbox kazi ni 21 00:01:02,210 --> 00:01:08,590 anaendesha kama mteja juu ya mbalimbali mifumo ya uendeshaji na vifaa. 22 00:01:08,590 --> 00:01:11,387 Dropbox desktop mteja ni mmoja wa watu wengi maalumu, 23 00:01:11,387 --> 00:01:12,720 na moja ya kuvutia zaidi. 24 00:01:12,720 --> 00:01:15,460 >> THOMAS Carriero: Kwa hiyo Dropbox kimsingi inachukua mafaili yote 25 00:01:15,460 --> 00:01:19,500 kwamba kuweka katika folder na chunks files wale katika nne megabyte chunks. 26 00:01:19,500 --> 00:01:23,270 Hivyo tutaweza kuchukua 100 megabyte PDF file na tutaweza 27 00:01:23,270 --> 00:01:26,070 chunk ndani 25 nne megabyte chunks. 28 00:01:26,070 --> 00:01:30,670 Wale chunks ni basi encrypted na kisha sisi kuwatuma kuzuia yetu server. 29 00:01:30,670 --> 00:01:35,980 >> ALEX Allain: watumishi kuzuia ni kuhifadhi kwa ajili ya vitalu wenyewe, 30 00:01:35,980 --> 00:01:39,570 na hivyo kuzuia kila ni kuhifadhiwa katika kuzuia server na data 31 00:01:39,570 --> 00:01:43,990 na Shaw 356 hash ya kuzuia hiyo. 32 00:01:43,990 --> 00:01:48,280 Hiyo ni encryption ya msingi sana primitive kuwa muhtasari wa, katika baadhi ya akili, 33 00:01:48,280 --> 00:01:53,140 data kwa njia ya kipekee sana kwamba ya kipekee kwa data hiyo. 34 00:01:53,140 --> 00:01:55,540 >> Unaweza kupakia file zima wote kwa mara moja, 35 00:01:55,540 --> 00:02:00,120 lakini zinageuka kama wewe kufanya kwamba, kwa kweli kubwa files kuchukua 36 00:02:00,120 --> 00:02:03,616 kweli kwa muda mrefu kupakia, na kama una kushindwa, wewe ni nje ya bahati 37 00:02:03,616 --> 00:02:04,740 na una upya yake. 38 00:02:04,740 --> 00:02:07,620 >> Nini sisi basi ni sisi tunasema server nyingine katika mfumo wetu, 39 00:02:07,620 --> 00:02:11,550 na kile tunachokiita metadata server, kwamba hey hii ni faili, 40 00:02:11,550 --> 00:02:14,200 na ni linajumuisha zifuatazo orodha ya vitalu. 41 00:02:14,200 --> 00:02:17,030 Na sisi kupita juu hashes kutambua vitalu wale 42 00:02:17,030 --> 00:02:18,770 badala ya re-kuweka kuzuia nzima. 43 00:02:18,770 --> 00:02:20,820 metaserver kisha hundi ya kuzuia watumishi, 44 00:02:20,820 --> 00:02:22,153 hufanya uhakika vitalu ni huko. 45 00:02:22,153 --> 00:02:23,140 Kama wao ni, kamilifu. 46 00:02:23,140 --> 00:02:24,040 Kila kitu ni nzuri. 47 00:02:24,040 --> 00:02:26,400 >> THOMAS Carriero: Wakati sisi wanataka kimsingi kushusha 48 00:02:26,400 --> 00:02:30,050 file kutoka katika mtandao, hebu kusema, tutaweza kusema kwa metaserver mwisho 49 00:02:30,050 --> 00:02:33,090 kwanza, hey unaweza kuniambia kuhusu ambapo iko file huyu? 50 00:02:33,090 --> 00:02:37,230 Na metaserver watasema, oh file huu kweli 25 nne megabyte chunks, 51 00:02:37,230 --> 00:02:38,210 na hapa ni. 52 00:02:38,210 --> 00:02:41,712 Na kisha tutaweza kwenda kuzuia server na kweli kushusha kila chunks hizo. 53 00:02:41,712 --> 00:02:43,670 Na kisha tutaweza upya file kutoka huko, 54 00:02:43,670 --> 00:02:45,086 na kisha tutaweza kuanza download. 55 00:02:45,086 --> 00:02:47,580 Ndiyo, hivyo Dropbox ya mikataba na wadogo kimsingi 56 00:02:47,580 --> 00:02:50,460 na sana, sharding fujo sana. 57 00:02:50,460 --> 00:02:56,400 >> ALEX Allain: Sharding ni wakati kuchukua yote ya watumiaji katika kuanza yako up 58 00:02:56,400 --> 00:03:00,010 au kampuni yako na labda wao kutumika kuwa katika orodha ya moja, 59 00:03:00,010 --> 00:03:02,620 na kwamba kazi kubwa mpaka hit idadi fulani ya watumiaji. 60 00:03:02,620 --> 00:03:04,578 Na kwa kweli nini unataka kufanya ni kutafuta baadhi ya njia 61 00:03:04,578 --> 00:03:07,410 kugawa wale katika mbili database, au labda zaidi ya miaka miwili. 62 00:03:07,410 --> 00:03:10,830 Kusema ukweli, kutosha kwamba unaweza na kila user katika dunia. 63 00:03:10,830 --> 00:03:13,080 >> Na hivyo wakati wewe Shard, nini kufanya ni wewe 64 00:03:13,080 --> 00:03:16,830 kutafuta baadhi ya njia ya kuamua ambayo database kwenda 65 00:03:16,830 --> 00:03:20,240 kwa hauhitaji kupiga directory ya kati. 66 00:03:20,240 --> 00:03:23,670 Au labda ni haraka sana, nafuu kuangalia-up directory ya kati. 67 00:03:23,670 --> 00:03:27,189 >> THOMAS Carriero: Sisi kamwe kuwa kila kitu kuhifadhiwa katika database moja, 68 00:03:27,189 --> 00:03:28,980 kwa sababu hiyo karibu kamwe kwenda wadogo. 69 00:03:28,980 --> 00:03:33,970 Hivyo badala yake, nini sisi kufanya ni kuchukua kila kwamba habari, files yote 70 00:03:33,970 --> 00:03:36,610 ni kuhifadhiwa kwenye metadata, kigae katika mamia 71 00:03:36,610 --> 00:03:38,710 au maelfu ya database mantiki. 72 00:03:38,710 --> 00:03:42,900 Na hiyo ina maana kwamba wakati tuna kuomba kwa habari ya mtumiaji, 73 00:03:42,900 --> 00:03:46,890 tutaweza kusema kwanza, hey ambayo database ni habari mtumiaji huyu kuhifadhiwa katika? 74 00:03:46,890 --> 00:03:49,852 Basi tutaweza kimsingi kutumia uamuzi huo kwenda 75 00:03:49,852 --> 00:03:51,560 kujua kwamba database na hapo ndipo tutaweza 76 00:03:51,560 --> 00:03:55,080 mzigo mafaili yote au yote metadata kuhusu files. 77 00:03:55,080 --> 00:03:56,464 >> Hivyo sisi matumizi mengi ya sharding. 78 00:03:56,464 --> 00:03:57,880 Lakini sharding haitoshi daima. 79 00:03:57,880 --> 00:04:00,380 Wewe ni kweli haja ya cache mengi ya maombi ya kawaida, 80 00:04:00,380 --> 00:04:04,010 kwa sababu hata wale database maswali inaweza kuwa ghali 81 00:04:04,010 --> 00:04:07,570 hivyo sisi pia kufanya ukamataji fujo mikakati ya kuhakikisha kwamba wengi 82 00:04:07,570 --> 00:04:10,310 maombi ya kawaida ni rahisi kabisa compute. 83 00:04:10,310 --> 00:04:14,630 Na kimsingi kwamba inafanya mengi kasi na inafanya kazi wa zamani wadogo. 84 00:04:14,630 --> 00:04:17,320 Hivyo kwamba ni katika sana kiwango cha juu cha jinsi Dropbox kazi. 85 00:04:17,320 --> 00:04:19,149 >> ALEX Allain: Mimi Alex Allain. 86 00:04:19,149 --> 00:04:20,857 >> THOMAS Carriero: Na Mimi nina Thomas Carriero. 87 00:04:20,857 --> 00:04:22,579 ALEX Allain: Na hii ni CS50. 88 00:04:22,579 --> 00:04:23,936