MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Достатъчно бърз и надежден ли е GridFS за производство?

Използвам gridfs на работа на един от нашите сървъри, който е част от уебсайт за сравняване на цени с достойни статистики за трафик (около 25 000 посетители на ден). Сървърът няма много RAM, 2gigs и дори процесорът не е много бърз (Core 2 duo 1.8Ghz), но сървърът има много място за съхранение:10Tb (sata) в конфигурация на raid 0. Работата, която сървърът върши, е много проста:

Всеки продукт в нашия ценови сравнител има изображение (има около 10 милиона продукта според нашата продуктова база данни), а задачата на сървърите е да изтеглят изображението, да го преоразмерят, да го съхраняват в gridfs и да го доставят до браузъра на посетителите. .. ако не присъства в мрежата... или... го доставете на браузъра на посетителите, ако вече е съхранен в мрежата. Така че това може да се нарече „традиционна cdn схема“.

Съхранили сме и обработихме 4 милиона изображения на този сървър, откакто е стартиран и работи. Преоразмеряването и съхраняването на нещата се извършват от обикновен php скрипт... но със сигурност скрипт на python или нещо като java може да бъде по-бърз.

Текущ размер на данните:11,23 g

Текущ размер за съхранение:12,5 g

Индекси :5

Индексен размер:849,65 м

Относно надеждността:Това е много надеждно. Сървърът не се зарежда, размерът на индекса е наред, заявките са бързи

Относно скоростта:Със сигурност не е ли бързо, колкото локалното съхранение на файлове, може би 10% по-бавно, но достатъчно бързо, за да се използва в реално време, дори когато изображението трябва да бъде обработено, което в нашия случай е много зависимо от php. Времената за поддръжка и разработка също бяха намалени:стана толкова лесно да изтриете едно или няколко изображения:просто подайте заявка към db с проста команда за изтриване. Друго интересно нещо:когато рестартирахме стария си сървър с локално съхранение на файлове (тогава милиони файлове в хиляди папки), той понякога виси с часове, защото системата извършваше проверка на целостта на файла (това наистина отне часове...). Вече нямаме този проблем с gridfs, нашите изображения вече се съхраняват в големи mongodb парчета (2 GB файлове)

Така че... мисля... Да, gridfs е достатъчно бърз и надежден, за да се използва за производство.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Премахнете дубликатите, когато използвате $unionWith в MongoDB

  2. mongoDB има ли проблеми с повторното свързване или го правя погрешно?

  3. Множество изрази $elemMatch за съвпадение на стойности на масиви, използващи $all в MongoDB?

  4. създаване и актуализиране на множество MongoDB документи в едно обаждане

  5. MongoDB $anyElementTrue