Использовать ли GridFS для сохранения файлов в Mongodb?
Файлы размером 100кб - 1мб.
Прирост в день примерно 1000 штук, стабильно и размерено в течении дня.
А вот запросов от посетителей в день к этим файлам примерно 1 000 000
Файловую систему + nginx использовать не хочется чтобы не думать о том как оно там лежит и на сколько папок делить и тому подобное. Плюс хочется сохранять метадату рядом с файлом.
Как лучше хранить файлы в Mongodb?
GridFS или в бинарном виде (BSON?) и почему?
MR.TOSTER: вы файлы удалять когда-нибудь будете? Если да то найдите ответ на вопрос - добавили ли физическое удаление данных в MongoDB или ещё нет:) Два года спрашиваю всех кто хвалит MongoDB, но никто не смог ответить:) Плюс вы на каждый файл будете иметь приличный такой оверхед... на 100 файлах не важно, но на миллионе уже не будете понимать как такое возможно:)
Плюс вам никто не мешает сделать тесты и сравнить что и как лучше, а посоветовать вам могут что угодно:)
Файлы в GridFS удалять можно. Все работает. Огромный плюс GridFS в том,что при масштабировании по серверам GridFS так же будет масштабироваться. Не нужно ломать голову по синхронизации / разделению файлов. Так что выбор верный. У нас крутится система в продакшене, где все файлы лежат в GridFS. Nginx научился отдавать файлы из GridFS напрямую.
MR.TOSTER: по законодательству если это пользовательские данные то вы обязаны иметь такую возможность, более того, обязаны ею пользоваться по желанию пользователя, иначе нарушение - штраф и опять таки обязательство по удалению данных...
webus: я не о файлах, я о mongodb, визуально данных нет, а на диске место не высвобождается.
Oleg Shevelev: Это очень узкая область, и речь идет не о пользовательских даных. И думаю что редко в каких случаях пользовательские данные поступают с такой четкой переодичностью и такими равными порциями как описано в моем случае. Из этого можно понять что многопоточность на загрузку не важна а значит открываются варианты использования, о которых надеюсь мне и напишут.