1 00:00:00,000 --> 00:00:00,409 2 00:00:00,409 --> 00:00:01,950 THOMAS CARRIERO: Mi estas Thomas Carriero. 3 00:00:01,950 --> 00:00:03,640 Mi estas softvara inĝeniero en Demetujo. 4 00:00:03,640 --> 00:00:05,250 >> ALEX Allain: Mi estas Alex Allain. 5 00:00:05,250 --> 00:00:08,200 Mi estas inĝeniero tie ĉe Demetujo. 6 00:00:08,200 --> 00:00:11,320 >> THOMAS CARRIERO: Jes, mi estis efektive la unua estro TF por CS50 7 00:00:11,320 --> 00:00:13,660 Kiam David Malin transprenis la klaso. 8 00:00:13,660 --> 00:00:17,010 Mi jam estis instruanta CS50 por du sesmonatoj 9 00:00:17,010 --> 00:00:20,700 kun Mike Smith, kiu estis la antaŭan instruiston tie. 10 00:00:20,700 --> 00:00:25,310 >> ALEX Allain: Do mi efektive ne preni CS50, sed mi faris TF ĝin dufoje. 11 00:00:25,310 --> 00:00:29,050 Iam kiel regula TF, kaj tiam mia lasta jaro 12 00:00:29,050 --> 00:00:32,520 Mi estis vere kapo TF el CS50, kiu estis tre amuza. 13 00:00:32,520 --> 00:00:34,270 THOMAS CARRIERO: Tiel Kiam David etendis 14 00:00:34,270 --> 00:00:38,647 al mi pri starigadon Demetujo en la CS50 aparaton, 15 00:00:38,647 --> 00:00:41,230 Mi estis vere ekscititaj, ĉar ni efektive havas Linukson kliento, 16 00:00:41,230 --> 00:00:46,270 tial la plimulto de niaj uzantoj uzi aŭ Vindozo aŭ Makintoŝo klientoj, 17 00:00:46,270 --> 00:00:50,940 sed la Linukso, Makintoŝo kaj Vindozo klientoj estas ĉiuj vere tre similaj. 18 00:00:50,940 --> 00:00:55,590 >> Do, kion ni faris estas ni pre-instalita la Demetujo Linukso kliento en la CS50 19 00:00:55,590 --> 00:00:59,990 aparato, kaj kuras nur kiel ĉiuj niaj aliaj uzantoj de Linukso. 20 00:00:59,990 --> 00:01:02,210 >> ALEX Allain: Do la vojo Demetujo laboras estas 21 00:01:02,210 --> 00:01:08,590 runs kiel kliento sur multaj malsamaj operaciumoj kaj aparatoj. 22 00:01:08,590 --> 00:01:11,387 La Demetujo labortablo kliento estas unu el la plej bone konataj, 23 00:01:11,387 --> 00:01:12,720 kaj unu el la plej interesaj. 24 00:01:12,720 --> 00:01:15,460 >> THOMAS CARRIERO: Do Demetujo baze prenas ĉiujn dosierojn 25 00:01:15,460 --> 00:01:19,500 ke vi metu en la dosierujo kaj chunks tiujn dosierojn en kvar-megabajto pecoj. 26 00:01:19,500 --> 00:01:23,270 Do ni devos preni la 100-megabajto PDF-dosieron kaj ni 27 00:01:23,270 --> 00:01:26,070 chunk ĝin en 25 kvar-megabajto pecoj. 28 00:01:26,070 --> 00:01:30,670 Tiuj pecoj estas poste ĉifrita kaj tiam ni sendos ilin al nia bloko serviloj. 29 00:01:30,670 --> 00:01:35,980 >> ALEX Allain: La forbaro serviloj estas la stokado por la blokoj sin, 30 00:01:35,980 --> 00:01:39,570 kaj tiel ĉiu bloko estas stokita en la bloko servilo kun la datumoj 31 00:01:39,570 --> 00:01:43,990 kaj Shaw 356 hash de tiu bloko. 32 00:01:43,990 --> 00:01:48,280 Tio estas tre baza ĉifrado primitiva kiu resumas, iusence, 33 00:01:48,280 --> 00:01:53,140 la datumoj en tre unika vojo tio estas unika al tiu datumo. 34 00:01:53,140 --> 00:01:55,540 >> Vi povus alŝuti la tutan dosieron ĉiuj samtempe, 35 00:01:55,540 --> 00:02:00,120 sed ĝi rezultas, se vi faras ke, vere grandaj dosieroj preni 36 00:02:00,120 --> 00:02:03,616 vere longa tempo por alŝuti, kaj se vi havas la fiasko, vi estas el sorto 37 00:02:03,616 --> 00:02:04,740 kaj vi devas restartigi ĝin. 38 00:02:04,740 --> 00:02:07,620 >> Kion ni faru do estas ni diru alia servilo en nia sistemo, 39 00:02:07,620 --> 00:02:11,550 kaj kion ni nomas la metadatumojn servilo, por ke hey ĉi estas arkivo, 40 00:02:11,550 --> 00:02:14,200 kaj ĝi estas formita de la sekvanta listo de blokoj. 41 00:02:14,200 --> 00:02:17,030 Kaj ni pasas la hashes identigi tiujn blokojn 42 00:02:17,030 --> 00:02:18,770 anstataŭ re-alŝutas la tutan blokon. 43 00:02:18,770 --> 00:02:20,820 La metaserver tiam kontrolas la bloko serviloj, 44 00:02:20,820 --> 00:02:22,153 certigas la blokoj estas tie. 45 00:02:22,153 --> 00:02:23,140 Se ili estas, perfekta. 46 00:02:23,140 --> 00:02:24,040 Ĉio estas bona. 47 00:02:24,040 --> 00:02:26,400 >> THOMAS CARRIERO: Kiam ni volas baze elŝuti 48 00:02:26,400 --> 00:02:30,050 la dosieron el la interreto, ni diru, ni diros al la lasta metaserver 49 00:02:30,050 --> 00:02:33,090 unue, hey vi povas diri al mi, pri kie tiu dosiero lokita? 50 00:02:33,090 --> 00:02:37,230 Kaj metaserver diros: Ho, ĉi tiu dosiero efektive 25 kvar-megabajto pecoj: 51 00:02:37,230 --> 00:02:38,210 kaj ĉi tie ili estas. 52 00:02:38,210 --> 00:02:41,712 Kaj tiam ni iros bloko servilo kaj reale elŝuti ĉiun el tiuj pecoj. 53 00:02:41,712 --> 00:02:43,670 Kaj tiam ni devos rekonstrui la dosieron de tie, 54 00:02:43,670 --> 00:02:45,086 kaj tiam ni povos komenci la download. 55 00:02:45,086 --> 00:02:47,580 Jes, do Demetujo de efo kun skalo esence 56 00:02:47,580 --> 00:02:50,460 per tre, tre agresema sharding. 57 00:02:50,460 --> 00:02:56,400 >> ALEX Allain: Sharding estas kiam vi preni ĉiujn de la uzantoj en via komenco supren 58 00:02:56,400 --> 00:03:00,010 aŭ vian entreprenon kaj eble ili kutimis esti en unu datumbazo, 59 00:03:00,010 --> 00:03:02,620 kaj tio funkcias granda ĝis vi batis certan nombron de uzantoj. 60 00:03:02,620 --> 00:03:04,578 Kaj vere, kion vi volas fari estas trovi iun manieron 61 00:03:04,578 --> 00:03:07,410 dividi tiujn trans du datumbazoj, aŭ eble pli ol du. 62 00:03:07,410 --> 00:03:10,830 Ideale, sufiĉas ke vi povas havi ĉiun uzanton en la mondo. 63 00:03:10,830 --> 00:03:13,080 >> Kaj do, kiam vi Shard, kion vi faras estas vi 64 00:03:13,080 --> 00:03:16,830 trovi iun manieron de decidanta kiu datumbaza iri 65 00:03:16,830 --> 00:03:20,240 al kiu ne postulas bati centra dosierujo. 66 00:03:20,240 --> 00:03:23,670 Aŭ eble ĝi estas tre rapida, malmultekosta rigardo-supren centra dosierujo. 67 00:03:23,670 --> 00:03:27,189 >> THOMAS CARRIERO: Neniam ni havas ĉiun stokitaj en unu datumbazo, 68 00:03:27,189 --> 00:03:28,980 ĉar tio estas preskaŭ neniam tuj grimpi. 69 00:03:28,980 --> 00:03:33,970 Do anstataux, kion ni faros estas preni la tutan tiun informon, ĉiuj dosieroj 70 00:03:33,970 --> 00:03:36,610 estas konservataj en la metadatumojn, Shard trans centojn 71 00:03:36,610 --> 00:03:38,710 aŭ miloj da logikaj datumbazoj. 72 00:03:38,710 --> 00:03:42,900 Kaj tio signifas ke kiam ni havas peti por uzanto informojn, 73 00:03:42,900 --> 00:03:46,890 ni unue diru, hey kiu datumbaza Estas ĉi tiu uzanto informojn stokitaj en? 74 00:03:46,890 --> 00:03:49,852 Tiam ni esence uzos tiun decidon iri 75 00:03:49,852 --> 00:03:51,560 trovi tiun datumbazon kaj tie estas kie ni 76 00:03:51,560 --> 00:03:55,080 ŝarĝi ĉiuj dosieroj aŭ ĉiuj la metadatumojn pri la dosierojn. 77 00:03:55,080 --> 00:03:56,464 >> Do ni uzu multan sharding. 78 00:03:56,464 --> 00:03:57,880 Sed sharding ne ĉiam sufiĉas. 79 00:03:57,880 --> 00:04:00,380 Vi vere bezonas caché multon el la komunaj petoj, 80 00:04:00,380 --> 00:04:04,010 ĉar eĉ tiuj datumbazo pridemandojn povas esti multekosta 81 00:04:04,010 --> 00:04:07,570 tiel same ni ankaux faru agresema kaptante strategiojn por certigi ke la plej 82 00:04:07,570 --> 00:04:10,310 komuna petoj estas tute facila al komputi. 83 00:04:10,310 --> 00:04:14,630 Kaj esence kiu faras multan rapida kaj tio faras ĝin labori eks skalo. 84 00:04:14,630 --> 00:04:17,320 Do tio estas je tre altnivelaj kiom Demetujo funkcias. 85 00:04:17,320 --> 00:04:19,149 >> ALEX Allain: Mi estas Alex Allain. 86 00:04:19,149 --> 00:04:20,857 >> THOMAS CARRIERO: Kaj Mi estas Thomas Carriero. 87 00:04:20,857 --> 00:04:22,579 ALEX Allain: Kaj jen estas CS50. 88 00:04:22,579 --> 00:04:23,936