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.