sql >> Database teknologi >  >> NoSQL >> MongoDB

Er GridFS hurtig og pålidelig nok til produktion?

Jeg bruger gridfs på arbejdet på en af ​​vores servere, som er en del af en prissammenlignende hjemmeside med hæderlige trafikstatistikker (omkring 25.000 besøgende pr. dag). Serveren har ikke meget ram, 2gigs, og selv cpu'en er ikke rigtig hurtig (Core 2 duo 1.8Ghz), men serveren har masser af lagerplads:10Tb (sata) i raid 0-konfiguration. Det arbejde, serveren udfører, er meget enkelt:

Hvert produkt på vores prissammenligner har et billede (der er omkring 10 millioner produkter ifølge vores produktdb), og serverens opgave er at downloade billedet, ændre størrelsen på det, gemme det på gridfs og levere det til den besøgendes browser. .. hvis det ikke er til stede i gitteret... eller... lever det til besøgendes browser, hvis det allerede er gemt i gitteret. Så dette kunne kaldes et 'traditionelt cdn-skema'.

Vi har gemt og behandlet 4 millioner billeder på denne server, siden den er oppe og køre. Ændring af størrelse og lagring af ting udføres af et simpelt php-script... men helt sikkert, et python-script eller noget som java kunne være hurtigere.

Aktuel datastørrelse:11,23g

Nuværende lagerstørrelse:12,5 g

Indeks :5

Indeksstørrelse :849,65 m

Om pålideligheden:Dette er meget pålideligt. Serveren indlæses ikke, indeksstørrelsen er ok, forespørgsler er hurtige

Om hastigheden:Helt sikkert, er det ikke hurtigt som lokal fillagring, måske 10% langsommere, men hurtigt nok til at blive brugt i realtid, selv når billedet skal behandles, hvilket i vores tilfælde er meget php-afhængigt. Vedligeholdelses- og udviklingstiden er også blevet reduceret:det blev så nemt at slette et enkelt eller flere billeder:bare forespørg på db med en simpel slettekommando. En anden interessant ting:når vi genstartede vores gamle server med lokal fillagring (så millioner af filer i tusindvis af mapper), hænger den nogle gange i timevis, fordi systemet udførte en filintegritetskontrol (dette tog virkelig timer...). Vi har ikke længere dette problem med gridfs, vores billeder er nu gemt i store mongodb bidder (2gb filer)

Så... efter min mening... Ja, gridfs er hurtig og pålidelig nok til at blive brugt til produktion.



  1. Sådan fortæller du en klient, hvor den nye Redis-master bruger Sentinel

  2. MongoDb-forespørgselsbetingelse ved sammenligning af 2 felter

  3. Mongoose, Vælg et bestemt felt med find

  4. Hvordan kan jeg bruge en regex-variabel i en forespørgsel til MongoDB