MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

GridFS est-il suffisamment rapide et fiable pour la production ?

J'utilise gridfs au travail sur l'un de nos serveurs qui fait partie d'un site de comparaison de prix avec des statistiques de trafic honorables (environ 25 000 visiteurs par jour). Le serveur n'a pas beaucoup de ram, 2gigs, et même le cpu n'est pas vraiment rapide (Core 2 duo 1.8Ghz) mais le serveur a beaucoup d'espace de stockage :10To (sata) en configuration raid 0. Le travail que fait le serveur est très simple :

Chaque produit sur notre comparateur de prix a une image (il y a environ 10 millions de produits selon notre base de données de produits), et le travail des serveurs consiste à télécharger l'image, à la redimensionner, à la stocker sur gridfs et à la livrer au navigateur des visiteurs. .. s'il n'est pas présent dans la grille... ou... livrez-le au navigateur des visiteurs s'il est déjà stocké dans la grille. Donc, cela pourrait être appelé un "schéma cdn traditionnel".

Nous avons stocké et traité 4 millions d'images sur ce serveur depuis qu'il est opérationnel. Le redimensionnement et le stockage sont effectués par un simple script php... mais bien sûr, un script python, ou quelque chose comme java pourrait être plus rapide.

Taille actuelle des données :11,23 g

Taille de stockage actuelle :12,5 g

Indices :5

Taille de l'indice :849.65m

A propos de la fiabilité :C'est très fiable. Le serveur ne se charge pas, la taille de l'index est correcte, les requêtes sont rapides

À propos de la vitesse :Bien sûr, n'est-il pas aussi rapide que le stockage de fichiers local, peut-être 10 % plus lent, mais suffisamment rapide pour être utilisé en temps réel même lorsque l'image doit être traitée, ce qui dans notre cas est très dépendant de php. Les temps de maintenance et de développement ont également été réduits :il est devenu si simple de supprimer une ou plusieurs images :il suffit d'interroger la base de données avec une simple commande de suppression. Autre chose intéressante :lorsque nous avons redémarré notre ancien serveur, avec un stockage de fichiers local (donc des millions de fichiers dans des milliers de dossiers), il se bloque parfois pendant des heures car le système effectuait une vérification de l'intégrité des fichiers (cela a vraiment pris des heures...). Nous n'avons plus ce problème avec gridfs, nos images sont maintenant stockées dans de gros morceaux mongodb (fichiers de 2 Go)

Donc... dans mon esprit... Oui, gridfs est suffisamment rapide et fiable pour être utilisé en production.