Томас Carriero: Я Томас Carriero. Я інжынер-праграміст у Dropbox. АЛЯКСЕЙ Ален: Я Алекс Ален. Я інжынер тут Dropbox. Томас Carriero: Так, я быў фактычна першы кіраўнік TF для CS50 калі Дэвід Малін ўзяў на сябе клас. Я ўжо выкладаю CS50 на працягу двух семестраў з Майкам Смітам, які быў да прафесара там. АЛЯКСЕЙ Ален: Так што я на самой справе не прыняць CS50, але я зрабіў TF яго двойчы. Пасля як звычайны TF, а потым мой старэйшы год Я быў фактычна кіраўнік TF з CS50, які быў вялікі забавай. Томас Carriero: Так калі Дэвід пацягнуўся мне пра наладу Dropbox ў CS50 прыбора, Я быў сапраўды ўсхваляваны, таму што мы на самай справе ёсць кліент Linux, так што большасць нашых карыстальнікаў выкарыстоўваюць або Вокны або кліенты Macintosh, але Linux, Macintosh і Windows, кліенты ўсё на самай справе вельмі падобныя. Так, што мы зрабілі гэта, мы папярэдне ўстаноўлена кліент Dropbox Linux у CS50 Прыбор, і ён працуе так жа, як ўсіх іншых нашых карыстальнікаў Linux. АЛЯКСЕЙ Ален: Так спосаб Dropbox працуе гэта працуе ў якасці кліента на розных аперацыйныя сістэмы і прылады. Настольны кліент Dropbox з'яўляецца адзін з найбольш вядомых, і адзін з самых цікавых. Томас Carriero: Так Dropbox у асноўным прымае ўсе файлы што вы паклалі ў тэчку, і гэта кавалкі гэтыя файлы на чатыры мегабайт кавалкі. Такім чынам, мы будзем прымаць 100-мегабайт PDF файл, і мы будзем кавалак яго ў 25 чатыры мегабайт кавалкі. Гэтыя кавалкі затым шыфруюцца і затым мы адпраўляем іх на нашы серверы блокаў. Алекс Allain: блок серверы захоўвання для саміх блокаў, і так кожны блок захоўваецца ў блок сервер з дадзенымі і Шоу 356 хэш гэтага блока. Гэта вельмі просты шыфравання прымітыўна які абагульняе, у пэўным сэнсе, дадзеныя ў вельмі унікальным спосабам вось ўнікальнымі для гэтых дадзеных. Вы можаце загрузіць ўвесь файл адразу, але аказваецца, калі вы робіце што, сапраўды вялікія файлы займаюць сапраўды доўгі час для загрузкі, і калі ў вас ёсць няўдачы, вы не пашанцавала і ў вас ёсць, каб перазапусціць яго. Тое, што мы тады зрабіць, гэта мы гаворым іншы сервер у нашай сістэме, і тое, што мы называем метададзеныя сервер, што эй гэта файл, і ён складаецца з Наступны спіс блокаў. І мы адмовіцца хэшы выявіць тыя блокі , А ня паўторнага загрузкі ўвесь блок. Metaserver затым правярае блок сервераў, пераконваецца, што блокі там. Калі яны ёсць, выдатна. Усё добра. Томас Carriero: Калі мы хачу асноўным спампаваць файлаў з інтэрнэту, давайце скажам, мы скажам, каб апошні Metaserver Першы, эй вы можаце расказаць мне пра тое, дзе знаходзіцца гэты файл у? І Metaserver скажу, пра гэты файл'S на самай справе 25 чатырох-мегабайт кавалкі, і вось яны. А потым мы пойдзем блок-сервер і на самай справе спампаваць кожны з гэтых кавалкаў. І тады мы будзем рэканструяваць файл адтуль, і тады мы будзем пачаць загрузку. Так, так Dropbox здзелак са шкалой у асноўным вельмі, вельмі агрэсіўныя Sharding. АЛЯКСЕЙ Ален: Sharding, калі вы прыняць усе карыстальнікі ў вашай запуск ці ваша кампанія, і магчыма яны раней у адной базе дадзеных, і што не працуе вялікі, пакуль вы ўдарыў пэўную колькасць карыстальнікаў. І на самай справе, што вы хочаце зрабіць, гэта знайсці спосаб падзяліць тыя праз два базы дадзеных, або, можа быць больш за два. У ідэале, досыць таго, што вы можаце значыць кожны карыстач у свеце. І таму, калі вы асколак, што вы робіце гэта вам знайсці спосаб прыняцця рашэння якую базу дадзеных, каб пайсці да таго, што не патрабуе патрапіўшы ў цэнтральны каталог. Ці, можа быць, гэта вельмі хутка, танна просмотровом цэнтральны каталог. Томас Carriero: Мы ніколі не павінны усё захоўваецца ў адной базе дадзеных, таму што гэта амаль ніколі не збіраецца ў маштабе. Так замест гэтага, што мы будзем рабіць, гэта прыняць усе што інфармацыя, усе файлы, якія захоўваюцца на метададзеных, асколак праз сотні ці тысячы лагічных баз дадзеных. А гэта значыць, што, калі ў нас ёсць запыт інфармацыі карыстальніка, мы спачатку сказаць, эй, якую базу дадзеных з'яўляецца інфармацыя ўдзельніка захоўваюцца ў? Тады мы будзем у асноўным выкарыстоўваць гэтае рашэнне, каб пайсці знайсці гэтую базу дадзеных а вось дзе мы будзем загрузіць усе файлы ці ўсё метададзеныя пра файлах. Такім чынам, мы выкарыстоўваем шмат шардинге. Але Sharding не заўсёды дастаткова. Вы на самой справе трэба для кэшавання шмат агульных запытаў, таму што нават тыя, базы дадзеных Запыты могуць быць дарагімі таму мы таксама зрабіць агрэсіўны захоп стратэгіі, каб пераканацца, што найбольш агульныя запыты даволі лёгка вылічыць. І ў асноўным, што робіць шмат хутчэй, і гэта робіць яго працу экс маштаб. Дык вось у вельмі высокага ўзроўню, як Dropbox працуе. АЛЯКСЕЙ Ален: Я Алекс Ален. Томас Carriero: І Я Томас Carriero. АЛЯКСЕЙ Ален: І гэта CS50.