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