1 00:00:00,000 --> 00:00:00,409 2 00:00:00,409 --> 00:00:01,950 THOMAS CARRIERO: Rwy'n Thomas Carriero. 3 00:00:01,950 --> 00:00:03,640 Rwy'n beiriannydd meddalwedd yn Dropbox. 4 00:00:03,640 --> 00:00:05,250 >> ALEX Allain: Rwy'n Alex Allain. 5 00:00:05,250 --> 00:00:08,200 Yr wyf yn beiriannydd yma yn Dropbox. 6 00:00:08,200 --> 00:00:11,320 >> THOMAS CARRIERO: Ie, roeddwn yn mewn gwirionedd TF bennaeth cyntaf ar gyfer CS50 7 00:00:11,320 --> 00:00:13,660 pan gymerodd David Malin dros y dosbarth. 8 00:00:13,660 --> 00:00:17,010 Yr wyf eisoes wedi bod yn dysgu CS50 am ddau semester 9 00:00:17,010 --> 00:00:20,700 gyda Mike Smith, a oedd yn athro cyn yno. 10 00:00:20,700 --> 00:00:25,310 >> ALEX Allain: Felly, yr wyf mewn gwirionedd oedd cymryd CS50, ond fe wnes TF ddwywaith. 11 00:00:25,310 --> 00:00:29,050 Unwaith fel TF rheolaidd, ac yna fy mlwyddyn uwch 12 00:00:29,050 --> 00:00:32,520 Roeddwn yn mewn gwirionedd yn bennaeth TF o CS50, a oedd yn llawer o hwyl. 13 00:00:32,520 --> 00:00:34,270 THOMAS CARRIERO: Felly pan gyrhaeddodd Dafydd allan 14 00:00:34,270 --> 00:00:38,647 i mi am sefydlu Dropbox yn y peiriant CS50, 15 00:00:38,647 --> 00:00:41,230 Roeddwn yn gyffrous gwirionedd, gan fod yr ydym mewn gwirionedd yn cael gleient Linux, 16 00:00:41,230 --> 00:00:46,270 felly mae'r rhan fwyaf o'n defnyddwyr yn defnyddio naill ai Ffenestri neu cleientiaid Macintosh, 17 00:00:46,270 --> 00:00:50,940 ond mae'r Linux, Macintosh, a Ffenestri cleientiaid i gyd mewn gwirionedd yn debyg iawn. 18 00:00:50,940 --> 00:00:55,590 >> Felly hyn a wnaethom yw ein cyn-osod y cleient Dropbox Linux yn y CS50 19 00:00:55,590 --> 00:00:59,990 offer, ac mae'n rhedeg yn union fel pob un o'n defnyddwyr eraill Linux. 20 00:00:59,990 --> 00:01:02,210 >> ALEX Allain: Felly, y ffordd Dropbox gweithio yw ei 21 00:01:02,210 --> 00:01:08,590 yn rhedeg fel cleient ar lawer o wahanol systemau gweithredu a dyfeisiau. 22 00:01:08,590 --> 00:01:11,387 Mae'r cleient n ben-desg Dropbox yn un o'r rhai mwyaf adnabyddus, 23 00:01:11,387 --> 00:01:12,720 ac yn un o'r rhai mwyaf diddorol. 24 00:01:12,720 --> 00:01:15,460 >> THOMAS CARRIERO: Felly Dropbox yn y bôn yn cymryd yr holl ffeiliau 25 00:01:15,460 --> 00:01:19,500 eich bod yn rhoi yn y ffolder ac mae'n ddarnau ffeiliau hynny yn ddarnau pedwar-megabeit. 26 00:01:19,500 --> 00:01:23,270 Felly, byddwn yn cymryd 100-megabeit Ffeil PDF ac rydym chi helpu 27 00:01:23,270 --> 00:01:26,070 darn i mewn i 25 o ddarnau pedwar-megabeit. 28 00:01:26,070 --> 00:01:30,670 Yna, darnau hynny yn cael eu hamgryptio a yna rydym yn eu hanfon at ein gweinyddion bloc. 29 00:01:30,670 --> 00:01:35,980 >> ALEX Allain: Y gweinyddwyr bloc yn storio ar gyfer y blociau eu hunain, 30 00:01:35,980 --> 00:01:39,570 ac felly mae pob bloc yn cael ei storio mewn gweinydd bloc gyda'r data 31 00:01:39,570 --> 00:01:43,990 a Shaw 356 hash y bloc. 32 00:01:43,990 --> 00:01:48,280 Dyna amgryptio sylfaenol iawn cyntefig sy'n crynhoi, mewn rhai ystyr, 33 00:01:48,280 --> 00:01:53,140 data mewn ffordd unigryw iawn sy'n unigryw i'r data hwnnw. 34 00:01:53,140 --> 00:01:55,540 >> Gallech lwytho y ffeil gyfan i gyd ar unwaith, 35 00:01:55,540 --> 00:02:00,120 ond mae'n troi allan os ydych yn gwneud hynny, ffeiliau fawr iawn yn cymryd 36 00:02:00,120 --> 00:02:03,616 amser hir iawn i lwytho, ac os gennych fethiant, ydych allan o lwc 37 00:02:03,616 --> 00:02:04,740 ac mae'n rhaid i chi ei ailgychwyn. 38 00:02:04,740 --> 00:02:07,620 >> Beth felly rydym yn ei wneud yw ein dweud gweinyddwr arall yn ein system, 39 00:02:07,620 --> 00:02:11,550 a'r hyn yr ydym yn galw y metadata gweinyddwr, hynny hey hon yn ffeil, 40 00:02:11,550 --> 00:02:14,200 ac mae'n cynnwys y rhestr o flociau canlynol. 41 00:02:14,200 --> 00:02:17,030 Ac rydym yn gwrthod y hashes i nodi'r blociau hynny 42 00:02:17,030 --> 00:02:18,770 yn hytrach na ail-llwytho i fyny y bloc cyfan. 43 00:02:18,770 --> 00:02:20,820 Mae'r metaserver Yna gwiriadau y gweinyddwyr bloc, 44 00:02:20,820 --> 00:02:22,153 yn sicrhau bod y blociau yno. 45 00:02:22,153 --> 00:02:23,140 Os ydynt, berffaith. 46 00:02:23,140 --> 00:02:24,040 Mae popeth yn dda. 47 00:02:24,040 --> 00:02:26,400 >> THOMAS CARRIERO: Pan fyddwn yn eisiau yn y bôn i'w llwytho i lawr 48 00:02:26,400 --> 00:02:30,050 y ffeil oddi ar y rhyngrwyd, gadewch i ni dyweder, byddwn yn dweud wrth y metaserver diwethaf 49 00:02:30,050 --> 00:02:33,090 yn gyntaf, hey allwch chi ddweud wrthyf am ble ffeil hwn lleoli? 50 00:02:33,090 --> 00:02:37,230 A bydd metaserver yn dweud, oh y ffeil yn mewn gwirionedd 25 ddarnau pedwar-megabeit, 51 00:02:37,230 --> 00:02:38,210 ac yma y maent. 52 00:02:38,210 --> 00:02:41,712 Ac yna byddwn yn mynd gweinydd bloc a mewn gwirionedd lawrlwytho pob un o'r darnau hynny. 53 00:02:41,712 --> 00:02:43,670 Ac yna byddwn yn ail-greu y ffeil oddi yno, 54 00:02:43,670 --> 00:02:45,086 ac yna byddwn yn dechrau lwytho i lawr. 55 00:02:45,086 --> 00:02:47,580 Ie, felly Dropbox yn delio gyda graddfa bôn 56 00:02:47,580 --> 00:02:50,460 drwy iawn, sharding ymosodol iawn. 57 00:02:50,460 --> 00:02:56,400 >> ALEX Allain: Sharding yw pan fyddwch yn cymryd pob un o'r defnyddwyr yn eich cychwyn i fyny 58 00:02:56,400 --> 00:03:00,010 neu eich cwmni ac efallai eu bod yn arfer bod mewn un gronfa ddata, 59 00:03:00,010 --> 00:03:02,620 a bod yn gweithio iawn hyd nes y byddwch taro nifer penodol o ddefnyddwyr. 60 00:03:02,620 --> 00:03:04,578 Ac yn wir yr hyn yr ydych ei eisiau ei wneud yw dod o hyd i ffordd 61 00:03:04,578 --> 00:03:07,410 i rannu hynny ar draws dau cronfeydd data, neu efallai mwy na dau. 62 00:03:07,410 --> 00:03:10,830 Yn ddelfrydol, yn ddigon eich bod yn gallu yn cael pob defnyddiwr yn y byd. 63 00:03:10,830 --> 00:03:13,080 >> Ac felly pan fyddwch yn Shard, yr hyn yr ydych yn ei wneud yw eich 64 00:03:13,080 --> 00:03:16,830 dod o hyd i ffordd o benderfynu sy'n cronfa ddata i fynd 65 00:03:16,830 --> 00:03:20,240 i hynny nid oes angen taro cyfeiriadur canolog. 66 00:03:20,240 --> 00:03:23,670 Neu efallai ei fod yn gyflym iawn, cyfeiriadur canolog edrych i fyny rhad. 67 00:03:23,670 --> 00:03:27,189 >> THOMAS CARRIERO: Yr ydym byth yn cael popeth storio mewn un gronfa ddata, 68 00:03:27,189 --> 00:03:28,980 oherwydd dyna bron byth yn mynd i raddfa. 69 00:03:28,980 --> 00:03:33,970 Felly, yn hytrach, yr hyn y byddwn yn ei wneud yw cymryd yr holl wybodaeth honno, yr holl ffeiliau sydd 70 00:03:33,970 --> 00:03:36,610 yn cael eu storio ar y metadata, Shard ar draws cannoedd 71 00:03:36,610 --> 00:03:38,710 neu filoedd o gronfeydd data rhesymegol. 72 00:03:38,710 --> 00:03:42,900 Ac mae hynny'n golygu bod pan fydd gennym cais am wybodaeth y defnyddiwr, 73 00:03:42,900 --> 00:03:46,890 byddwn yn gyntaf yn dweud, hey sy'n gronfa ddata caiff y wybodaeth y defnyddiwr hwn ei storio mewn? 74 00:03:46,890 --> 00:03:49,852 Yna, byddwn ni yn y bôn Defnyddiwch y penderfyniad i fynd 75 00:03:49,852 --> 00:03:51,560 dod o hyd i gronfa ddata a dyna lle byddwn ni 76 00:03:51,560 --> 00:03:55,080 lwytho holl ffeiliau neu bob y metadata am y ffeiliau. 77 00:03:55,080 --> 00:03:56,464 >> Felly, rydym yn defnyddio llawer o sharding. 78 00:03:56,464 --> 00:03:57,880 Ond nid sharding bob amser yn ddigon. 79 00:03:57,880 --> 00:04:00,380 Yn rhaid i chi mewn gwirionedd i cache llawer o'r ceisiadau cyffredin, 80 00:04:00,380 --> 00:04:04,010 oherwydd hyd yn oed y rhai cronfa ddata Gall ymholiadau fod yn ddrud 81 00:04:04,010 --> 00:04:07,570 felly rydym hefyd yn gwneud cipio ymosodol strategaethau i sicrhau bod y rhan fwyaf o 82 00:04:07,570 --> 00:04:10,310 ceisiadau cyffredin yw eithaf hawdd i gyfrifo. 83 00:04:10,310 --> 00:04:14,630 Ac yn y bôn sy'n gwneud llawer gyflymach ac mae'n ei gwneud yn gweithio ex raddfa. 84 00:04:14,630 --> 00:04:17,320 Felly dyna yn iawn lefel uchel-sut Dropbox yn gweithio. 85 00:04:17,320 --> 00:04:19,149 >> ALEX Allain: Rwy'n Alex Allain. 86 00:04:19,149 --> 00:04:20,857 >> THOMAS CARRIERO: A Rwy'n Thomas Carriero. 87 00:04:20,857 --> 00:04:22,579 ALEX Allain: Ac mae hyn yn CS50. 88 00:04:22,579 --> 00:04:23,936