THOMAS CARRIERO: Je suis Thomas Carriero. Je suis un ingénieur logiciel chez Dropbox. ALEX ALLAIN: Je suis Alex Allain. Je suis un ingénieur ici à Dropbox. THOMAS CARRIERO: Oui, j'étais en fait le premier TF tête pour CS50 quand David Malin a repris la classe. J'avais déjà enseigné CS50 pour deux semestres Mike Smith, qui était le professeur avant il. ALEX ALLAIN: Donc j'ai effectivement fait pas CS50 prendre, mais je l'ai fait deux fois TF. Une fois en TF régulière, et puis ma dernière année En fait, j'étais tête de TF CS50, qui était un beaucoup de plaisir. THOMAS CARRIERO: Donc, quand David tendit à moi au sujet de la mise en place La sélection dans le dispositif de CS50, J'étais vraiment excité, parce nous avons en fait un client Linux, donc la plupart de nos utilisateurs utilisent soit Fenêtres ou les clients Macintosh, mais Linux, Macintosh et Windows clients sont tous très similaire. Donc, ce que nous avons fait, c'est que nous pré-installé le client Dropbox Linux dans le CS50 appareil, et il fonctionne comme tous nos autres utilisateurs de Linux. ALEX ALLAIN: Donc, le façon Dropbox fonctionne est-il fonctionne comme un client sur de nombreux différents les systèmes d'exploitation et les périphériques. Le client de bureau Dropbox est l'un des plus connus, et l'une des plus intéressantes. THOMAS CARRIERO: Donc Dropbox prend essentiellement tous les fichiers que vous mettez dans le dossier et morceaux ces fichiers en morceaux de quatre mégaoctets. Donc, nous allons jeter un 100 mégaoctets fichier PDF et nous allons morceau dans 25 morceaux de quatre mégaoctets. Ces morceaux sont ensuite cryptées et puis nous les envoyons à nos serveurs de blocs. ALEX ALLAIN: Les serveurs de blocs sont le stockage des blocs eux-mêmes, et de sorte que chaque bloc est stocké dans le serveur de bloc avec les données et une table de hachage Shaw 356 de ce bloc. C'est un cryptage très basique primitive qui résume, en un certain sens, les données d'une manière très unique qui est unique à ces données. Vous pouvez télécharger le fichier entier en une seule fois, mais il s'avère si vous faites que, vraiment gros fichiers prennent un temps très long à charger, et si vous avez une panne, vous n'avez pas de chance et vous devez redémarrer. Ce que nous faisons est alors nous disons un autre serveur dans notre système, et ce que nous appelons les métadonnées serveur, que bon c'est un fichier, et il est composé de la liste des blocs suivants. Et nous passons les hashs d'identifier les blocs plutôt que de re-ajout l'ensemble du bloc. Le metaserveur alors vérifie les serveurs de blocs, fait que les blocs sont là. S'ils le sont, parfait. Tout est bon. THOMAS CARRIERO: Lorsque nous voulez télécharger fondamentalement le fichier à partir d'Internet, nous allons par exemple, nous dirons à la dernière metaserveur premier, hey pouvez-vous me dire sur l'endroit où se trouve de ce fichier? Et metaserveur dira, oh ce fichier de en fait 25 morceaux de quatre méga-octets, et ils sont ici. Et puis nous irons un serveur de blocs et réellement télécharger chacun de ces morceaux. Et puis nous allons reconstruire le fichier à partir de là, et puis nous allons commencer le téléchargement. Oui, si Dropbox des offres avec échelle essentiellement par très, très agressif fragmentation. ALEX ALLAIN: Sharding est lorsque vous prendre tous les utilisateurs dans votre démarrage ou votre entreprise et peut-être qu'ils l'habitude d'être dans une base de données, et qui fonctionne très bien jusqu'à ce que vous frapper un certain nombre d'utilisateurs. Et vraiment ce que vous voulez à faire est de trouver un moyen de diviser les travers deux bases de données, ou peut-être plus de deux. Idéalement, assez que vous pouvez avoir tous les utilisateurs dans le monde. Et donc quand vous tesson, ce que vous faites, c'est vous trouver un moyen de décider base de données à partir à qui ne nécessite pas de frapper un répertoire central. Ou peut-être que c'est un très rapide, consultation répertoire central pas cher. THOMAS CARRIERO: Nous n'avons jamais tout stocké dans une base de données, parce que c'est presque ne va jamais à l'échelle. Ainsi, au lieu, ce que nous allons faire est de prendre toutes les que l'information, tous les fichiers que sont enregistrés sur les métadonnées, Eclat sur des centaines ou des milliers de bases de données logiques. Et cela signifie que lorsque nous avons une demander pour l'information de l'utilisateur, nous allons d'abord dire, hey quelle base de données est l'information de l'utilisateur stocké dans? Ensuite, nous allons essentiellement utiliser cette décision pour aller trouver cette base de données et c'est là que nous allons charger tous les fichiers ou tous les métadonnées sur les fichiers. Donc, nous utilisons beaucoup de fragmentation. Mais fragmentation n'est pas toujours suffisant. Vous avez réellement besoin de mettre en cache un grand nombre de demandes communes, parce que même ceux base de données les requêtes peuvent être coûteux si nous faisons également la capture agressif stratégies pour s'assurer que le plus demandes courantes sont assez facile à calculer. Et dans le fond qui fait beaucoup plus rapide et il fait fonctionner ex échelle. C'est donc à une très de haut niveau comment Dropbox fonctionne. ALEX ALLAIN: Je suis Alex Allain. THOMAS CARRIERO: Et Je suis Thomas Carriero. ALEX ALLAIN: Et c'est CS50.