sql >> Database >  >> NoSQL >> MongoDB

Is GridFS snel en betrouwbaar genoeg voor productie?

Ik gebruik gridfs op het werk op een van onze servers die deel uitmaakt van een prijsvergelijkende website met betrouwbare verkeersstatistieken (ongeveer 25k bezoekers per dag). De server heeft niet veel ram, 2gigs, en zelfs de cpu is niet echt snel (Core 2 duo 1.8Ghz) maar de server heeft genoeg opslagruimte:10Tb (sata) in raid 0 configuratie. Het werk dat de server doet is heel eenvoudig:

Elk product op onze prijsvergelijker heeft een afbeelding (er zijn ongeveer 10 miljoen producten volgens onze product-db), en de taak van de server is om de afbeelding te downloaden, het formaat te wijzigen, op te slaan op gridfs en deze aan de bezoekersbrowser te leveren. .. als het niet aanwezig is in het raster... of... bezorg het aan de browser van de bezoeker als het al in het raster is opgeslagen. Dit zou dus een 'traditioneel cdn-schema' kunnen worden genoemd.

We hebben 4 miljoen afbeeldingen op deze server opgeslagen en verwerkt sinds deze in gebruik is. Het formaat wijzigen en opslaan wordt gedaan door een eenvoudig php-script... maar een python-script of iets als java kan zeker sneller zijn.

Huidige gegevensgrootte:11,23 g

Huidige opslaggrootte:12,5 g

Indexen:5

Indexgrootte:849,65 m

Over de betrouwbaarheid:Dit is zeer betrouwbaar. De server laadt niet, de indexgrootte is ok, zoekopdrachten zijn snel

Over de snelheid:is het zeker niet snel als lokale bestandsopslag, misschien 10% langzamer, maar snel genoeg om in realtime te worden gebruikt, zelfs wanneer de afbeelding moet worden verwerkt, wat in ons geval erg php-afhankelijk is. Onderhouds- en ontwikkelingstijden zijn ook verminderd:het werd zo eenvoudig om één of meerdere afbeeldingen te verwijderen:vraag de db gewoon op met een eenvoudig verwijdercommando. Nog iets interessants:toen we onze oude server herstartten, met lokale bestandsopslag (dus miljoenen bestanden in duizenden mappen), bleef hij soms uren hangen omdat het systeem een ​​controle van de bestandsintegriteit uitvoerde (dit duurde echt uren...). We hebben dit probleem niet meer met gridfs, onze afbeeldingen worden nu opgeslagen in grote mongodb chunks (2GB bestanden)

Dus... in mijn gedachten... Ja, gridfs is snel en betrouwbaar genoeg om voor productie te worden gebruikt.



  1. MongoDB - $set om het Array-element bij te werken of te pushen

  2. Groepeer en tel per maand

  3. Een mangoest-databasemodule exporteren

  4. Hoe het .bson-bestandsformaat op mongodb te importeren