ТОМАС 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.