1 00:00:00,000 --> 00:00:00,409 2 00:00:00,409 --> 00:00:01,950 THOMAS CARRIERO: Én vagyok Thomas Carriero. 3 00:00:01,950 --> 00:00:03,640 Én egy szoftver mérnök Dropbox. 4 00:00:03,640 --> 00:00:05,250 >> ALEX ALLAIN: Alex vagyok Allain. 5 00:00:05,250 --> 00:00:08,200 Mérnök vagyok itt a Dropbox. 6 00:00:08,200 --> 00:00:11,320 >> THOMAS CARRIERO: Igen, én voltam valójában az első fej TF CS50 7 00:00:11,320 --> 00:00:13,660 amikor David Malin vette át az osztály. 8 00:00:13,660 --> 00:00:17,010 Én már tanított CS50 két félév 9 00:00:17,010 --> 00:00:20,700 Mike Smith, aki A korábbi tanár ott. 10 00:00:20,700 --> 00:00:25,310 >> ALEX ALLAIN: Szóval tényleg nem hogy CS50, de én TF kétszer. 11 00:00:25,310 --> 00:00:29,050 Ha a rendszeres TF, majd a végzős 12 00:00:29,050 --> 00:00:32,520 Én valójában vezetője TF CS50, ami egy nagyon szórakoztató. 13 00:00:32,520 --> 00:00:34,270 THOMAS CARRIERO: Tehát amikor David kinyújtotta 14 00:00:34,270 --> 00:00:38,647 nekem felállítása Dropbox a CS50 készülék 15 00:00:38,647 --> 00:00:41,230 Nagyon izgatott voltam, mert a valójában egy Linux kliens, 16 00:00:41,230 --> 00:00:46,270 így a legtöbb felhasználó használja vagy A Windows és Macintosh kliensek, 17 00:00:46,270 --> 00:00:50,940 de a Linux, Macintosh és Windows ügyfelek mind valójában nagyon hasonló. 18 00:00:50,940 --> 00:00:55,590 >> Tehát mi volt az, amit előre telepítve A Dropbox Linux ügyfél a CS50 19 00:00:55,590 --> 00:00:59,990 készüléket, és fut, mint Minden más Linux-felhasználók számára. 20 00:00:59,990 --> 00:01:02,210 >> ALEX ALLAIN: Tehát a módon Dropbox működik ez 21 00:01:02,210 --> 00:01:08,590 fut a kliens különböző operációs rendszerek és eszközök. 22 00:01:08,590 --> 00:01:11,387 A Dropbox asztali kliens az egyik jól ismert, 23 00:01:11,387 --> 00:01:12,720 és az egyik legérdekesebb. 24 00:01:12,720 --> 00:01:15,460 >> THOMAS CARRIERO: Tehát Dropbox alapvetően veszi az összes fájl 25 00:01:15,460 --> 00:01:19,500 , hogy tegye a mappában, és törzsdarabok ezeket a fájlokat a négy megabájt darabokat. 26 00:01:19,500 --> 00:01:23,270 Így lesz egy 100 MB-os PDF-fájlt, és mi 27 00:01:23,270 --> 00:01:26,070 darab be 25 négy megabyte darabokat. 28 00:01:26,070 --> 00:01:30,670 Azok a darabokat ezután titkosítva akkor küldje el a blokk szervereket. 29 00:01:30,670 --> 00:01:35,980 >> ALEX ALLAIN: A blokk szerverek a tárolás a blokkok maguk 30 00:01:35,980 --> 00:01:39,570 és így minden egyes blokk van tárolva a blokk szerver az adatokat 31 00:01:39,570 --> 00:01:43,990 és a Shaw 356 hash, hogy a blokk. 32 00:01:43,990 --> 00:01:48,280 Ez egy nagyon egyszerű titkosítási primitív , amely összefoglalja, bizonyos értelemben, 33 00:01:48,280 --> 00:01:53,140 az adatokat egy nagyon egyedi módon ami egyedi az adatokat. 34 00:01:53,140 --> 00:01:55,540 >> Lehet feltölteni a az egész fájlt egyszerre, 35 00:01:55,540 --> 00:02:00,120 de kiderül, ha nem arra, hogy az igazán nagy fájlokat fog 36 00:02:00,120 --> 00:02:03,616 egy nagyon hosszú idő, hogy feltölt, és ha van egy hiba, akkor így jártál 37 00:02:03,616 --> 00:02:04,740 és meg kell újraindítani. 38 00:02:04,740 --> 00:02:07,620 >> Amit akkor nem is mondunk másik szerver a rendszerben, 39 00:02:07,620 --> 00:02:11,550 és hívjuk a metaadatok szervert, hogy hé ez egy fájl, 40 00:02:11,550 --> 00:02:14,200 és ez áll a alábbi lista a blokkok. 41 00:02:14,200 --> 00:02:17,030 És adja át a hash-eket azonosítani azokat a blokkokat 42 00:02:17,030 --> 00:02:18,770 helyett újra feltölteni az egész blokk. 43 00:02:18,770 --> 00:02:20,820 A metaserver akkor ellenőrzi a blokk szerverek, 44 00:02:20,820 --> 00:02:22,153 biztosítja, hogy a blokkok vannak. 45 00:02:22,153 --> 00:02:23,140 Ha igen, tökéletes. 46 00:02:23,140 --> 00:02:24,040 Minden jó. 47 00:02:24,040 --> 00:02:26,400 >> THOMAS CARRIERO: Amikor szeretnénk alapvetően letölteni 48 00:02:26,400 --> 00:02:30,050 A fájlt az interneten, nézzük mondjuk, azt mondom, hogy az utolsó metaserver 49 00:02:30,050 --> 00:02:33,090 először, hé tudsz mondani arról, hogy hol ez a fájl található? 50 00:02:33,090 --> 00:02:37,230 És metaserver azt mondják, ó, ez a fájl a valójában 25 négy megabyte darabokat, 51 00:02:37,230 --> 00:02:38,210 és itt vannak. 52 00:02:38,210 --> 00:02:41,712 Aztán elmegyünk egy blokk szerver és valójában letölt minden egyes ilyen darabokat. 53 00:02:41,712 --> 00:02:43,670 És akkor majd rekonstruálni A fájlt onnan, 54 00:02:43,670 --> 00:02:45,086 és aztán majd indítsa el a letöltést. 55 00:02:45,086 --> 00:02:47,580 Igen, így Dropbox foglalkozik skálával alapvetően 56 00:02:47,580 --> 00:02:50,460 a nagyon, nagyon agresszív sharding. 57 00:02:50,460 --> 00:02:56,400 >> ALEX ALLAIN: Sharding az, amikor hogy minden, a felhasználók a induló 58 00:02:56,400 --> 00:03:00,010 vagy a vállalat, és talán Régen egy adatbázisban, 59 00:03:00,010 --> 00:03:02,620 és ez remekül működik, amíg meg nem megüt egy bizonyos számú felhasználó. 60 00:03:02,620 --> 00:03:04,578 És tényleg, mit akarsz kell tennie, hogy megtalálja a módját, 61 00:03:04,578 --> 00:03:07,410 megosztani azokat az egész két adatbázisok, vagy talán több, mint kettő. 62 00:03:07,410 --> 00:03:10,830 Ideális esetben elég, hogy van-e hogy minden felhasználó a világon. 63 00:03:10,830 --> 00:03:13,080 >> És így ha Szilánk, amit csinálsz te 64 00:03:13,080 --> 00:03:16,830 valamilyen módon a döntés melyik adatbázishoz kell menni 65 00:03:16,830 --> 00:03:20,240 az, amely nem igényel ütő a központi könyvtár. 66 00:03:20,240 --> 00:03:23,670 Vagy talán ez egy nagyon gyors, olcsó look-up központi könyvtárban. 67 00:03:23,670 --> 00:03:27,189 >> THOMAS CARRIERO: Mi soha nem mindent tárolni egy adatbázisban, 68 00:03:27,189 --> 00:03:28,980 mert ez majdnem soha nem fog a skála. 69 00:03:28,980 --> 00:03:33,970 Tehát ahelyett, hogy mit fogunk tennie, hogy minden hogy az információ, a fájlok 70 00:03:33,970 --> 00:03:36,610 tárolt metaadatok, Shard több száz 71 00:03:36,610 --> 00:03:38,710 vagy több ezer logikai adatbázisok. 72 00:03:38,710 --> 00:03:42,900 És ez azt jelenti, hogy van egy kéri a felhasználó adatait, 73 00:03:42,900 --> 00:03:46,890 akkor először azt mondják, hé, amely az adatbázis a felhasználó által tárolt adatok? 74 00:03:46,890 --> 00:03:49,852 Akkor alapvetően használni, hogy a döntést, hogy megy 75 00:03:49,852 --> 00:03:51,560 meg, hogy az adatbázis és itt fogunk 76 00:03:51,560 --> 00:03:55,080 betölteni a fájlokat vagy az összes A metaadatok a fájlokat. 77 00:03:55,080 --> 00:03:56,464 >> Így is rengeteg sharding. 78 00:03:56,464 --> 00:03:57,880 De sharding nem mindig elég. 79 00:03:57,880 --> 00:04:00,380 Ön valóban szükség van a cache sok a közös kérelmek 80 00:04:00,380 --> 00:04:04,010 mert még azok az adatbázis lekérdezések költséges lehet 81 00:04:04,010 --> 00:04:07,570 ezért mi is ezt az agresszív rögzítése stratégiákat, hogy megbizonyosodjon arról, hogy a leginkább 82 00:04:07,570 --> 00:04:10,310 közös kérelmek elég könnyű kiszámolni. 83 00:04:10,310 --> 00:04:14,630 És tulajdonképpen, ami egy csomó gyorsabb, és ez teszi a munka ex skálán. 84 00:04:14,630 --> 00:04:17,320 Szóval ez egy nagyon magas szintű, hogy Dropbox működik. 85 00:04:17,320 --> 00:04:19,149 >> ALEX ALLAIN: Alex vagyok Allain. 86 00:04:19,149 --> 00:04:20,857 >> THOMAS CARRIERO És Én vagyok Thomas Carriero. 87 00:04:20,857 --> 00:04:22,579 ALEX ALLAIN: És ez CS50. 88 00:04:22,579 --> 00:04:23,936