1 00:00:00,000 --> 00:00:00,409 2 00:00:00,409 --> 00:00:01,950 THOMAS CARRIERO: Ég er Thomas Carriero. 3 00:00:01,950 --> 00:00:03,640 Ég er a hugbúnaður verkfræðingur hjá Dropbox. 4 00:00:03,640 --> 00:00:05,250 >> ALEX Allain: Ég er Alex Allain. 5 00:00:05,250 --> 00:00:08,200 Ég er verkfræðingur hér á Dropbox. 6 00:00:08,200 --> 00:00:11,320 >> THOMAS CARRIERO: Já, ég var reyndar fyrsta höfuð TF fyrir CS50 7 00:00:11,320 --> 00:00:13,660 Þegar Davíð Malin tók á bekknum. 8 00:00:13,660 --> 00:00:17,010 Ég hafði þegar verið að kenna CS50 fyrir tvær annir 9 00:00:17,010 --> 00:00:20,700 við Mike Smith, sem var að fyrrverandi prófessor þar. 10 00:00:20,700 --> 00:00:25,310 >> ALEX Allain: Svo ég gerði í raun ekki taka CS50, en ég gerði TF það tvisvar. 11 00:00:25,310 --> 00:00:29,050 Einu sinni sem venjulegur TF, og þá lokaári mínu 12 00:00:29,050 --> 00:00:32,520 Ég var reyndar höfuð TF á CS50, sem var mikið gaman. 13 00:00:32,520 --> 00:00:34,270 THOMAS CARRIERO: Svo þegar Davíð náði út 14 00:00:34,270 --> 00:00:38,647 við mig um að setja upp Dropbox í CS50 tæki, 15 00:00:38,647 --> 00:00:41,230 Ég var mjög spenntur, vegna þess að Við höfum í raun Linux viðskiptavinur, 16 00:00:41,230 --> 00:00:46,270 svo af notendum okkar nota annaðhvort Windows eða Macintosh viðskiptavinum, 17 00:00:46,270 --> 00:00:50,940 en Linux, Macintosh og Windows viðskiptavinir eru í raun mjög svipuð. 18 00:00:50,940 --> 00:00:55,590 >> Svo er það sem við gerðum við fyrirfram uppsett á Dropbox Linux viðskiptavinur í CS50 19 00:00:55,590 --> 00:00:59,990 tæki, og það rennur bara eins og allar aðrar Linux notendum okkar. 20 00:00:59,990 --> 00:01:02,210 >> ALEX Allain: Svo vegur Dropbox virkar það 21 00:01:02,210 --> 00:01:08,590 keyrir eins og a viðskiptavinur á mörgum mismunandi stýrikerfi og tæki. 22 00:01:08,590 --> 00:01:11,387 The Dropbox skrifborð viðskiptavinur er einn af the heilbrigður þekktur, 23 00:01:11,387 --> 00:01:12,720 og einn af the áhugaverður. 24 00:01:12,720 --> 00:01:15,460 >> THOMAS CARRIERO: Svo Dropbox grundvallaratriðum tekur allar skrár 25 00:01:15,460 --> 00:01:19,500 sem þú setur í möppu og það bitum þær skrár í fjögurra megabæti klumpur. 26 00:01:19,500 --> 00:01:23,270 Þannig að við munum taka a 100-megabæti PDF skrá og við munum 27 00:01:23,270 --> 00:01:26,070 klumpur það í 25 fjögurra megabæti klumpur. 28 00:01:26,070 --> 00:01:30,670 Þeir klumpur eru síðan dulkóðaðar og þá erum við að senda þau til að loka netþjónum okkar. 29 00:01:30,670 --> 00:01:35,980 >> ALEX Allain: The blokk netþjónum eru geymslu fyrir blokkir sjálfir, 30 00:01:35,980 --> 00:01:39,570 og svo hver blokk er geymt í blokk miðlara með gögn 31 00:01:39,570 --> 00:01:43,990 og Shaw 356 kjötkássa af því blokk. 32 00:01:43,990 --> 00:01:48,280 Það er mjög einfalt dulkóðun frumstæð að samantekt, í einhverjum skilningi, 33 00:01:48,280 --> 00:01:53,140 gögnin á mjög einstakan hátt sem er einstakt við þessi gögn. 34 00:01:53,140 --> 00:01:55,540 >> Þú getur hlaða hana heild skrá allt í einu, 35 00:01:55,540 --> 00:02:00,120 en það kemur í ljós ef þú gerir Það, virkilega stór skrá taka 36 00:02:00,120 --> 00:02:03,616 mjög langan tíma til að hlaða, og ef þú hafa a bilun, þú ert út af heppni 37 00:02:03,616 --> 00:02:04,740 og þú þarft að endurræsa það. 38 00:02:04,740 --> 00:02:07,620 >> Það sem við gerum þá er að við segja annar framreiðslumaður í kerfi okkar, 39 00:02:07,620 --> 00:02:11,550 og það sem við köllum lýsigögn miðlara, að hey þetta er a skrá, 40 00:02:11,550 --> 00:02:14,200 og það er samsett af Eftirfarandi listi yfir blokkir. 41 00:02:14,200 --> 00:02:17,030 Og við framhjá upp kjötkássa að skilgreina þá blokkir 42 00:02:17,030 --> 00:02:18,770 fremur en með tilvísun til-senda allt blokk. 43 00:02:18,770 --> 00:02:20,820 The metaserver þá fer yfir blokk netþjóna, 44 00:02:20,820 --> 00:02:22,153 gerir viss blokkir eru þar. 45 00:02:22,153 --> 00:02:23,140 Ef þeir eru, fullkomin. 46 00:02:23,140 --> 00:02:24,040 Allt er gott. 47 00:02:24,040 --> 00:02:26,400 >> THOMAS CARRIERO: Þegar við vilt í rauninni að sækja 48 00:02:26,400 --> 00:02:30,050 skrá af internetinu, við skulum segja, munum vér segja við síðasta metaserver 49 00:02:30,050 --> 00:02:33,090 fyrst, hey getur þú sagt mér um hvar staðsett Þessi skrá er? 50 00:02:33,090 --> 00:02:37,230 Og metaserver mun segja, ó þessa skrá er í raun 25 fjögurra megabæti klumpur, 51 00:02:37,230 --> 00:02:38,210 og hér eru. 52 00:02:38,210 --> 00:02:41,712 Og þá munum við fara blokk miðlara og raunverulega sækja hvert þessara klumpur. 53 00:02:41,712 --> 00:02:43,670 Og þá munum við endurbyggja skráin þaðan, 54 00:02:43,670 --> 00:02:45,086 og þá munum við hefja niðurhalið. 55 00:02:45,086 --> 00:02:47,580 Já, svo Dropbox tilboðin með mælikvarða grundvallaratriðum 56 00:02:47,580 --> 00:02:50,460 með mjög, mjög árásargjarn sharding. 57 00:02:50,460 --> 00:02:56,400 >> ALEX Allain: Sharding er þegar þú taka alla notendur í byrjun upp 58 00:02:56,400 --> 00:03:00,010 eða þitt fyrirtæki og ef til vill þeir er notað til að vera í einni gagnagrunninum, 59 00:03:00,010 --> 00:03:02,620 og það virkar fínt þar til þú högg ákveðinn fjölda notenda. 60 00:03:02,620 --> 00:03:04,578 Og virkilega það sem þú vilt að gera er að finna einhverja leið 61 00:03:04,578 --> 00:03:07,410 að skipta þeim yfir tvo gagnagrunna, eða kannski meira en tveir. 62 00:03:07,410 --> 00:03:10,830 Fullkomlega, nóg að þú getur hafa hvern notanda í heiminum. 63 00:03:10,830 --> 00:03:13,080 >> Og svo þegar þú Shard, hvað þú gerir er þér 64 00:03:13,080 --> 00:03:16,830 finna einhverja leið til að ákveða sem gagnagrunn til að fara 65 00:03:16,830 --> 00:03:20,240 að þessi hjartarskinn ekki þurfa hitting miðlæga skrá. 66 00:03:20,240 --> 00:03:23,670 Eða kannski er það mjög fljótur, ódýr líta upp Mið skrá. 67 00:03:23,670 --> 00:03:27,189 >> THOMAS CARRIERO: Við höfum aldrei allt geymt í einum gagnagrunni, 68 00:03:27,189 --> 00:03:28,980 því það er nánast aldrei að fara að skala. 69 00:03:28,980 --> 00:03:33,970 Svo í stað, hvað við munum gera er að taka allt að upplýsingar, allar skrárnar sem 70 00:03:33,970 --> 00:03:36,610 eru geymdar á lýsigögn, Shard yfir hundrað 71 00:03:36,610 --> 00:03:38,710 eða þúsundir rökrétt gagnagrunna. 72 00:03:38,710 --> 00:03:42,900 Og það þýðir að þegar við höfum Beiðni um upplýsingar notanda, 73 00:03:42,900 --> 00:03:46,890 við munum fyrst segja, hey sem gagnagrunnur eru upplýsingar notanda geymdar í? 74 00:03:46,890 --> 00:03:49,852 Þá munum við í rauninni nota þá ákvörðun að fara 75 00:03:49,852 --> 00:03:51,560 finna þessi gagnagrunnur og það er þar sem við munum 76 00:03:51,560 --> 00:03:55,080 hlaða allar skrár eða allt lýsigögn um skrár. 77 00:03:55,080 --> 00:03:56,464 >> Svo við notum mikið af sharding. 78 00:03:56,464 --> 00:03:57,880 En sharding er ekki alltaf nóg. 79 00:03:57,880 --> 00:04:00,380 Þú ert í raun þarft að skyndiminni A einhver fjöldi af the sameiginlegur beiðnir, 80 00:04:00,380 --> 00:04:04,010 því jafnvel þeir gagnagrunni fyrirspurnir geta verið dýr 81 00:04:04,010 --> 00:04:07,570 þannig að við gerum líka árásargjarn handtaka aðferðir til að tryggja að sem mest 82 00:04:07,570 --> 00:04:10,310 algengar beiðnir eru auðvelt að reikna. 83 00:04:10,310 --> 00:04:14,630 Og í rauninni gerir það mikið hraðar og það gerir það að vinna fyrrverandi mælikvarða. 84 00:04:14,630 --> 00:04:17,320 Svo er það á mjög háttsettum hvernig Dropbox virkar. 85 00:04:17,320 --> 00:04:19,149 >> ALEX Allain: Ég er Alex Allain. 86 00:04:19,149 --> 00:04:20,857 >> THOMAS CARRIERO: Og Ég er Thomas Carriero. 87 00:04:20,857 --> 00:04:22,579 ALEX Allain: Og þetta er CS50. 88 00:04:22,579 --> 00:04:23,936