2010-10-01 9 views
0

Je travaille sur un projet où j'ai besoin de stocker de nombreux fichiers téléchargés par l'utilisateur et de fournir une redondance. Pour les téléchargements de fichiers, j'ai d'abord envisagé de placer les fichiers téléchargés dans un répertoire «uploads» NFS et d'utiliser Gearman pour récupérer le fichier, le déplacer vers ses emplacements de stockage permanents, puis mettre à jour MySQL avec les fichiers info etc).MongoDB GridFS pour le stockage de fichiers HA

Maintenant que j'ai appris les GridFS de MongoDB, je pense que cela pourrait être une meilleure approche que NFS & Gearman. Avec GridFS, je n'ai pas besoin de NFS et la redondance est intégrée - mais je mettrais beaucoup de confiance dans MongoDB. Avec tout cela dit, je me demandais si quelqu'un avait des idées? Est-ce que quelqu'un sait d'un grand déploiement de GridFS? Je sais que beaucoup de gens utilisent MongoDB pour NoSQL, mais je n'ai pas trouvé beaucoup de références aux déploiements de GridFS.

Merci!

Répondre

1

Nous utilisons GridFS pour l'un de nos projets. J'utilise également gearman pour distribuer la file d'attente afin que les clients n'aient pas à attendre qu'un fichier finisse de télécharger. Une fois que l'utilisateur clique sur submit, php envoie le job à gearman, puis j'ai des "workers" qui font l'insertion dans MongoDB.

+0

Si cela ne vous dérange pas de demander, combien de données stockez-vous dans GridFS et sur combien de machines? – Ethan

+0

Pour le projet sans gearman (je ne sais pas si les développeurs vont implémenter gearman), qui est une application de partage de fichiers, nous prévoyons au moins un TB de données. Je suis en train d'obtenir des devis pour le matériel physique pour construire notre environnement de sharding. Vous aurez besoin de partitionner lorsque vos données deviennent assez volumineuses. À l'heure actuelle, nous utilisons une machine, mais je prévois d'avoir au moins 4 machines pour gérer le sharding. – luckytaxi

+0

Nous sommes au début du développement et essayons de choisir une approche. J'ai sur ma liste pour mieux comprendre comment MongoDB partage GridFS sur les machines. Ma question principale est, si j'ai 4 machines, puis-je demander à MongoDB de toujours avoir les données sur 2 des 4 machines pour la redondance. Aussi, si plus tard je veux augmenter cela à 3 sur 4, puis-je facilement? – Ethan

0

Vous pouvez également consulter MogileFS, qui est un système de stockage distribué.

Questions connexes