THOMAS Carriero: Sóc Thomas Carriero. Sóc un enginyer de programari de Dropbox. ALEX ALLAIN: Sóc Alex Allain. Sóc enginyer aquí a Dropbox. THOMAS Carriero: Sí, jo era en realitat el primer TF cap per CS50 quan David Malin es va fer càrrec de la classe. Jo ja havia estat ensenyant CS50 durant dos semestres amb Mike Smith, que va ser el professor abans d'allà. ALEX ALLAIN: Així que en realitat no ho va fer prendre CS50, però ho vaig fer TF dues vegades. Una vegada que un TF regular, i després del meu últim any Jo estava en realitat TF cap de CS50, que era un munt de diversió. THOMAS Carriero: Així quan David es va acostar em sobre la configuració de Dropbox en l'aparell CS50, Jo estava molt emocionat, perquè de fet tenim un client Linux, així que la majoria dels nostres usuaris utilitzen ja sigui Finestres o els clients de Macintosh, però el Linux, Macintosh i Windows els clients són en realitat molt similars. Així que el que vam fer és que pre-instal lat el client de Dropbox Linux al CS50 aparell, i funciona com tots els nostres altres usuaris de Linux. ALEX ALLAIN: Així que el manera Dropbox funciona és que s'executa com a client en molts diversos sistemes operatius i dispositius. El client d'escriptori de Dropbox és un dels més coneguts, i un dels més interessants. THOMAS Carriero: Així Dropbox bàsicament pren tots els arxius que es posa a la carpeta i trossos aquests arxius en trossos de quatre megabytes. Així que anem a fer una 100 megabytes Arxiu PDF i anem a tros en 25 trossos de quatre megabytes. Aquests trossos són llavors encriptades i després els enviem als nostres servidors de bloc. ALEX ALLAIN: Els servidors de bloc són l'emmagatzematge dels mateixos blocs, i pel que cada bloc s'emmagatzema en el servidor de bloc amb les dades i un hash Shaw 356 d'aquest bloc. Aquesta és una encriptació molt bàsic primitiu que resumeix, en cert sentit, les dades d'una manera molt singular això és únic a aquestes dades. Vostè podria pujar el conjunt d'arxius d'una sola vegada, però resulta que si ho fa que els arxius molt grans, tenen un temps molt llarg per carregar, i si es produeix una fallada, estàs fora de sort i has de reiniciar. El que a continuació fem és que diem un altre servidor en el nostre sistema, i el que anomenem les metadades servidor, que bo això és un arxiu, i està compost pel llista de blocs. I passem els hashes per identificar aquests blocs en lloc de tornar a la càrrega tot el bloc. El metaserver llavors comprova els servidors de bloc, fa que els blocs hi són. Si és així, perfecte. Tot és bo. THOMAS Carriero: Quan voleu baixar bàsicament l'arxiu d'Internet, anem a per exemple, direm a l'última metaserver primer, sent em pot dir sobre on es troba aquest arxiu? I metaserver dirà, oh aquest fitxer d' en realitat 25 trossos de quatre megabytes, i aquí estan. I després anirem a un servidor de bloc i descarregant en cada un d'aquests trossos. I després anem a reconstruir l'arxiu des d'allà, i després anem a començar la descàrrega. Sí, per la qual cosa Dropbox d'ofertes amb l'escala, bàsicament, per molt, sharding molt agressiu. ALEX ALLAIN: Sharding és quan es prendre tots els usuaris de la seva posada en marxa o la seva empresa i potser solia ser en una base de dades, i que funciona molt bé fins que copejar un cert nombre d'usuaris. I realment el que vols de fer és trobar alguna manera per dividir els a través de dues bases de dades, o potser més de dos. Idealment, prou perquè puguis tenir tots els usuaris en el món. I així, quan vostè fragment, el que fa que és trobar la manera de decidir que la base de dades per anar que no requereix colpejar a un directori central. O potser és molt ràpid, directori central de consulta barat. THOMAS Carriero: Nosaltres mai hem tot el emmagatzemat en una base de dades, perquè això és gairebé mai va a escalar. Així que en lloc, el que farem és prendre totes aquesta informació, tots els arxius que s'emmagatzemen en les metadades, fragmentar a través de centenars o milers de bases de dades lògiques. I això vol dir que quan tenim un sol · licitud d'informació d'un usuari, anem primer diem, sent que la base de dades és la informació de l'usuari emmagatzemada en? Llavors tindrem bàsicament utilitzar aquesta decisió d'anar trobar que la base de dades i aquí és on anem a carregar tots els arxius o totes les metadades dels arxius. Així que fem servir un munt de sharding. Però sharding no sempre és suficient. En realitat es necessita per emmagatzemar en memòria cau moltes de les peticions comunes, perquè fins i tot els que la base de dades consultes poden ser costosos així també nosaltres fem captura agressius estratègies per assegurar-se que la major part peticions són comuns bastant fàcil de calcular. I bàsicament això té molt més ràpid i fa que funcioni ex escala. Així que això és en un molt d'alt nivell de com funciona Dropbox. ALEX ALLAIN: Sóc Alex Allain. THOMAS Carriero: I Sóc Thomas Carriero. ALEX ALLAIN: I això és CS50.