Я использую gridfs на работе на одном из наших серверов, который является частью сайта для сравнения цен с хорошей статистикой посещаемости (около 25 тысяч посетителей в день). У сервера не так много оперативной памяти, 2 гигабайта, и даже процессор не очень быстрый (Core 2 duo 1.8Ghz), но на сервере достаточно места для хранения: 10 ТБ (sata) в конфигурации raid 0. Работа сервера очень проста:
У каждого продукта на нашем устройстве сравнения цен есть изображение (согласно нашей базе данных продукта существует около 10 миллионов продуктов), и задача серверов заключается в том, чтобы загрузить изображение, изменить его размер, сохранить его в gridfs и доставить в браузер посетителей. .. если его нет в сетке ... или ... доставить его в браузер посетителей, если он уже сохранен в сетке. Итак, это можно назвать «традиционной схемой cdn».
Мы сохранили и обработали 4 миллиона изображений на этом сервере с момента его запуска. Изменение размера и сохранение выполняется с помощью простого скрипта php ... но наверняка скрипт python или что-то вроде java может быть быстрее.
Текущий размер данных: 11,23 г
Текущий объем памяти: 12,5 г
Индексы: 5
Размер индекса: 849,65 м
О надежности: Это очень надежно. Сервер не загружается, размер индекса в порядке, запросы быстрые
О скорости: конечно, это не так быстро, как локальное хранилище файлов, может быть, на 10% медленнее, но достаточно быстро, чтобы использовать его в реальном времени, даже когда изображение необходимо обработать, что в нашем случае очень зависит от php. Время обслуживания и разработки также сократилось: стало так просто удалить одно или несколько изображений: просто запросите базу данных с помощью простой команды удаления. Еще одна интересная вещь: когда мы перезагружали наш старый сервер с локальным хранилищем файлов (то есть миллион файлов в тысячах папок), он иногда зависал на несколько часов, потому что система выполняла проверку целостности файла (это действительно занимало часы ...). У нас больше нет этой проблемы с gridfs, наши изображения теперь хранятся в больших чанках mongodb (файлы 2gb)
Итак ... на мой взгляд ... Да, gridfs достаточно быстр и надежен, чтобы его можно было использовать в продакшене.