MongoDB база данных временного хранения и восстановления видео
Мы используем MongoDB в качестве промежуточного хранилища для приложения, которое позволяет пользователю загружать загружаемые видеофайлы. Мы используем GridFS API из приложений Java, что очень удобно для данного случая (мы сочли его более подходящим, быстрым и надежным, чем хранение файлов в таблице в реляционной базе данных).
После того, как видео было обработано из БД (и сохранено в физических файлах), мы можем удалить их, но у нас есть проблема, что новое пространство не просто перераспределяется, а вместо этого "используется" без каких-либо утилитарных данных. Мы пытались восстановить базу данных, как это предлагалось в сообщениях, таких как " Автоматическое сжатие удаленного пространства в mongodb? но это привело к падению базы данных на несколько дней!, который не является идеальным, поскольку он должен быть запущен 24/7. (Мы пришли к этому недавно, когда в БД не было свободного места).
Я не очень хорошо осведомлен в этой теме и поэтому хотел бы получить мнения о решении, которое вы знаете / используете, которое было бы эффективным: разрешить хранение в блоках и легко перераспределить память, когда блоки / блоки не нужны. Некоторые варианты:
1) Имейте две базы данных Mongo: время от времени экспортируйте и импортируйте данные (все, кроме таблиц, используемых GridFS, которые содержат видео) из одной базы данных в другую. Первый БД может быть отброшен, а пространство снова дефрагментировано. Это кажется немного сложным и нехорошо, если это нужно делать часто, так как у нас мало общего пространства для БД.
2) Сохраните их в реляционной базе данных (для таблицы без отношения и эти специальные характеристики не кажутся идеальными, но работают, если другие решения этого не делают)
3)...
Если это так, приложение развертывается в инфраструктуре J2EE.
Благодарю.