THOMAS Carriero: Eu son Thomas Carriero. Eu son un enxeñeiro de software de Dropbox. ALEX ALLAIN: Eu son Alex Allain. Eu son un enxeñeiro aquí no Dropbox. THOMAS Carriero: Si, eu estaba realmente o primeiro TF cabeza para CS50 cando David Malin asumiu a clase. Eu xa fora o ensino CS50 por dous semestres con Mike Smith, que era o profesor antes alí. ALEX ALLAIN: Entón eu realmente non fixen tomar CS50, pero eu fixen TF-lo dúas veces. Así como un TF regular, e logo, o meu último ano Eu estaba realmente cabeza TF de CS50, o que foi moi divertido. THOMAS Carriero: Entón cando David estendeu a man para min sobre a creación Dropbox no aparello CS50, Eu estaba realmente animado, porque nós realmente temos un cliente Linux, polo que a maioría dos nosos usuarios utilizar Windows ou Macintosh, os clientes pero Linux, Macintosh e Windows clientes son todos realmente moi similar. Entón, o que fixemos foi pre-instalado o cliente Dropbox Linux no CS50 aparello, e funciona só como todos os nosos outros usuarios de Linux. ALEX ALLAIN: Entón, a xeito Dropbox funciona é execútase como un cliente en moitos diferentes sistemas operativos e dispositivos. O cliente de escritorio Dropbox é un dos máis ben coñecidos, e un dos máis interesantes. THOMAS Carriero: Entón Dropbox basicamente leva todos os ficheiros que puxo no cartafol e segmenta estes arquivos en anacos de catro megabytes. Entón imos dar un 100 megabytes Arquivo PDF e imos peza de TI en 25 anacos de catro megabytes. Estes anacos son entón cifrada e logo envialos para os nosos servidores de bloque. ALEX ALLAIN: Os servidores de bloque son o almacenamento dos propios bloques, e de xeito que cada bloque é almacenado en o servidor de bloque cos datos e Shaw 356 de hash do bloque. Iso é unha criptografía moi básico primitivo que resume, en certo sentido, os datos dunha forma moi orixinal que é exclusivo a eses datos. Podería facer a carga do ficheiro dunha soa vez, pero resulta que se fai que, arquivos moi grandes tomar un tempo moi longo para cargar, e se ten un fallo, está sen sorte e ten que reinicia-lo. O que entón facemos é dicir outro servidor no noso sistema, eo que chamamos os metadatos servidor, que mira que é un arquivo, e está composto polo lista de bloques seguinte. E pasamos os hashes para identificar os bloques en vez de re-upload todo o bloque. O metaservidor entón comproba os servidores do bloque, certifica-se os bloques están aí. Se son, perfecto. Todo é bo. THOMAS Carriero: Cando quere facer a descarga, basicamente, o arquivo de Internet, imos por exemplo, imos dicir que a última metaservidor primeiro, hey me pode dicir sobre onde se sitúa este ficheiro? E metaservidor vai dicir, oh este ficheiro de en realidade, o 25 anacos de catro megabytes, e aquí están elas. E despois imos un servidor bloque e realmente baixar cada un destes anacos. E entón nós imos reconstruír o arquivo de alí, e entón imos comezar a descarga. Si, entón Dropbox de ofertas con escala basicamente por moito, sharding moi agresivo. ALEX ALLAIN: Sharding é cando tomar todos os usuarios no seu inicio ou a súa empresa e quizais eles adoitaba ser nunha base de datos, e que funciona moi ben ata que alcanzou un certo número de usuarios. E realmente o que quere que facer é atopar unha forma para dividir as dúas mediante bases de datos, ou que máis que dous. Ideal, o suficiente para que pode ter todos os usuarios no mundo. E así, cando estilhaço, o que fai que é atopar algunha forma de decidir cal base de datos para ir para que non requiren bater un directorio central. Ou quizais sexa moi rápido, directorio central look-up barato. THOMAS Carriero: Nunca temos todo almacenado nunha base de datos, porque iso é case non vai escalar. Entón, en vez diso, o que imos facer é dar todo esta información, todos os ficheiros que son almacenadas nos metadatos, estilhaço en centos ou miles de bases de datos lóxicos. E isto significa que, cando temos un solicitude de información dun usuario, imos primeiro dicir, hey cal base de datos é información do usuario almacenados en? Entón imos basicamente usar esa decisión de ir atopar ese banco de datos e é aí onde nós imos cargar todos os ficheiros ou todos os metadatos sobre os ficheiros. Entón, usamos unha morea de sharding. Pero sharding non sempre é suficiente. Realmente precisa para almacenar en caché unha morea de peticións comúns, porque mesmo aqueles datos consultas pode ser caro así tamén facemos captación agresiva estratexias para asegurarse de que o máis peticións son comúns moi fácil de calcular. E, basicamente, que fai moi máis rápido e fai funcionar ex escala. Entón, iso é nun moi de alto nivel como Dropbox funciona. ALEX ALLAIN: Eu son Alex Allain. THOMAS Carriero: E Eu son Thomas Carriero. ALEX ALLAIN: E este é CS50.