THOMAS Carriero: Soy Thomas Carriero. Soy un ingeniero de software de Dropbox. ALEX ALLAIN: Soy Alex Allain. Soy ingeniero aquí en Dropbox. THOMAS Carriero: Sí, yo era en realidad el primer TF cabeza para CS50 cuando David Malin se hizo cargo de la clase. Yo ya había estado enseñando CS50 durante dos semestres con Mike Smith, quien fue el profesor antes de allí. ALEX ALLAIN: Así que en realidad no lo hizo tomar CS50, pero lo hice TF dos veces. Una vez que un TF regular, y después de mi último año Yo estaba en realidad TF jefe de CS50, que era un montón de diversión. THOMAS Carriero: Así cuando David se acercó me sobre la configuración de Dropbox en el aparato CS50, Yo estaba muy emocionado, porque de hecho tenemos un cliente Linux, así que la mayoría de nuestros usuarios utilizan ya sea De Windows o los clientes de Macintosh, pero el Linux, Macintosh y Windows los clientes son en realidad muy similares. Así que lo que hicimos es que pre-instalado el cliente de Dropbox Linux en el CS50 aparato, y funciona como todos nuestros otros usuarios de Linux. ALEX ALLAIN: Así que el manera Dropbox funciona es que se ejecuta como cliente en muchos diversos sistemas operativos y dispositivos. El cliente de escritorio de Dropbox es uno de los más conocidos, y uno de los más interesantes. THOMAS Carriero: Así Dropbox básicamente toma todos los archivos que se pone en la carpeta y trozos esos archivos en trozos de cuatro megabytes. Así que vamos a echar un 100 megabytes Archivo PDF y vamos a trozo en 25 trozos de cuatro megabytes. Estos trozos son entonces encriptados y luego los enviamos a nuestros servidores de bloque. ALEX ALLAIN: Los servidores de bloque son el almacenamiento de los propios bloques, y por lo que cada bloque se almacena en el servidor de bloque con los datos y un hash Shaw 356 de ese bloque. Esa es una encriptación muy básico primitivo que resume, en cierto sentido, los datos de una manera muy singular eso es único a esos datos. Usted podría subir el conjunto de archivos de una sola vez, pero resulta que si lo hace que los archivos muy grandes, tienen un tiempo muy largo para cargar, y si se produce un fallo, estás fuera de suerte y tienes que reiniciarlo. Lo que a continuación hacemos es que decimos otro servidor en nuestro sistema, y lo que llamamos los metadatos servidor, que bueno esto es un archivo, y está compuesto por el siguiente lista de bloques. Y pasamos los hashes para identificar esos bloques en lugar de volver a la carga todo el bloque. El metaserver entonces comprueba los servidores de bloque, hace que los bloques están ahí. Si es así, perfecto. Todo es bueno. THOMAS Carriero: Cuando desee descargar básicamente el archivo de Internet, vamos a por ejemplo, vamos a decir a la última metaserver primero, oye me puede decir acerca de dónde se encuentra este archivo? Y metaserver dirá, oh este archivo de en realidad 25 trozos de cuatro megabytes, y aquí están. Y luego iremos a un servidor de bloque y descargando en cada uno de esos trozos. Y luego vamos a reconstruir el archivo desde allí, y luego vamos a empezar la descarga. Sí, por lo que Dropbox de ofertas con la escala, básicamente, por muy, sharding muy agresivo. ALEX ALLAIN: Sharding es cuando se tomar todos los usuarios de su puesta en marcha o su empresa y tal vez solía ser en una base de datos, y que funciona muy bien hasta que golpear un cierto número de usuarios. Y realmente lo que quieres que hacer es encontrar alguna manera para dividir los a través de dos bases de datos, o tal vez más de dos. Idealmente, lo suficiente para que puedas tener todos los usuarios en el mundo. Y así, cuando usted fragmento, lo que hace que es encontrar la manera de decidir que la base de datos para ir a que no requiere golpear a un directorio central. O tal vez es muy rápido, directorio central de consulta barato. THOMAS Carriero: Nosotros nunca tenemos todo lo almacenado en una base de datos, porque eso es casi nunca va a escalar. Así que en vez, lo que vamos a hacer es tomar todas esa información, todos los archivos que se almacenan en los metadatos, fragmentar a través de cientos o miles de bases de datos lógicas. Y eso significa que cuando tenemos un solicitud de información de un usuario, vamos primero decimos, oye que la base de datos es la información del usuario almacenada en? Entonces tendremos básicamente utilizar esa decisión de ir encontrar que la base de datos y ahí es donde vamos a cargar todos los archivos o todas los metadatos de los archivos. Así que usamos un montón de sharding. Pero sharding no siempre es suficiente. En realidad se necesita para almacenar en caché muchas de las peticiones comunes, porque incluso los que la base de datos consultas pueden ser costosos así también nosotros hacemos captura agresivos estrategias para asegurarse de que la mayor parte peticiones son comunes bastante fácil de calcular. Y básicamente eso tiene mucho más rápido y hace que funcione ex escala. Así que eso es en un muy de alto nivel de cómo funciona Dropbox. ALEX ALLAIN: Soy Alex Allain. THOMAS Carriero: Y Soy Thomas Carriero. ALEX ALLAIN: Y esto es CS50.