sql >> Databáze >  >> NoSQL >> MongoDB

Je GridFS dostatečně rychlý a spolehlivý pro výrobu?

Gridfs používám při práci na jednom z našich serverů, který je součástí webu porovnávajícího ceny s úctyhodnými statistikami návštěvnosti (kolem 25 tisíc návštěvníků za den). Server nemá moc RAM, 2 giga, a dokonce ani procesor není opravdu rychlý (Core 2 duo 1,8 GHz), ale server má dostatek úložného prostoru:10 TB (sata) v konfiguraci raid 0. Úloha, kterou server dělá, je velmi jednoduchá:

Každý produkt na našem cenovém srovnávači má obrázek (podle naší produktové databáze je kolem 10 milionů produktů) a úkolem serveru je obrázek stáhnout, změnit jeho velikost, uložit na gridfs a doručit do prohlížeče návštěvníků. .. pokud není přítomen v mřížce... nebo... doručit jej do prohlížeče návštěvníků, pokud je již v mřížce uložen. Takže by se to dalo nazvat jako 'tradiční cdn schéma'.

Na tomto serveru jsme od jeho uvedení do provozu uložili a zpracovali 4 miliony obrázků. Změna velikosti a ukládání věcí se provádí jednoduchým php skriptem... ale určitě by mohl být rychlejší python skript nebo něco jako java.

Aktuální velikost dat:11,23 g

Aktuální velikost úložiště:12,5 g

Indexy:5

Velikost indexu :849,65 m

O spolehlivosti:Toto je velmi spolehlivé. Server se nenačte, velikost indexu je v pořádku, dotazy jsou rychlé

O rychlosti:Jistě, není to rychlé jako místní úložiště souborů, možná o 10 % pomalejší, ale dostatečně rychlé na to, aby se dalo použít v reálném čase, i když je potřeba zpracovat obrázek, což je v našem případě velmi závislé na php. Zkrátily se také časy údržby a vývoje:odstranění jednoho nebo více obrázků se stalo tak snadné:stačí se dotázat db jednoduchým příkazem delete. Další zajímavá věc:když jsme restartovali náš starý server s místním úložištěm souborů (takže miliony souborů v tisících složkách), někdy visí celé hodiny, protože systém prováděl kontrolu integrity souborů (toto opravdu trvalo hodiny...). S gridfs už tento problém nemáme, naše obrázky jsou nyní uloženy ve velkých mongodb chunkech (2gb soubory)

Takže... myslím... Ano, gridfs je dostatečně rychlý a spolehlivý na to, aby se dal použít pro výrobu.



  1. Jak nastavit objem dat docker mongo

  2. Oznámení ClusterControl 1.7.1:Podpora pro PostgreSQL 11 a MongoDB 4.0, vylepšené monitorování

  3. MongoDB Index na různých typech

  4. Najděte v Double Nested Array MongoDB