Временное хранилище для файлов - PullRequest
0 голосов
/ 04 августа 2011

Мне нужно хранить файлы в течение 30 минут (или меньше), затем мне нужно удалить их (после обработки или по таймеру).

Нефункциональные требования

Должно быть бесплатнои желательно иметь .net адаптер.

загрузка:Первый этап: 10-20 новых файлов в минуту.Второй этап: 100-200 новых файлов в минуту.Третий этап: 1000-3000 новых файлов в минуту.Размер файла: <10 МБ - 90%,> 10 МБ - 10%.

Мне нужно два решения: жесткий диск (файловая система или дБ) и память.

Что вы мне посоветуете?

PS: в настоящее время я изучаю MongoDB.

Ответы [ 2 ]

1 голос
/ 05 августа 2011

Интересная проблема.

Если вы сначала сделаете несколько математиков и посмотрите на максимум, вам нужно будет поддерживать:

3000 файлов в минуту - это 50 в секунду * в среднем 1005 * , если мы предположим, чтосредний размер файла 5 МБ, то есть 250 МБ.Тогда все файлы не будут поступать со средней скоростью, поэтому вам потребуется поддержка по меньшей мере 1 ГБ в секунду.

На такой скорости просто протолкнуть его по сети становится проблемой.

Поэтому вынеобходимо распределить данные по многим серверам баз данных и сегментам сети.

Такое разделение баз данных называется шардингом, MongoDB поддерживает шардинг.Для других см .: http://en.wikipedia.org/wiki/Shard_(database_architecture)

0 голосов
/ 07 августа 2011

Если вы запускаете приложение на одном сервере, вы можете использовать изолированное хранилище: http://msdn.microsoft.com/en-us/library/3ak841sy(v=VS.100).aspx

...