Делаем часть системы безопасности. Видео архив. Необходимо писать\читать видео в\из архив. Всего N потоков на запись и N на одновременное чтение. N = 10-20.
Архив циклический, т.е. с возможностью перезаписи старых данных новыми. Длинна цикла одного потока несколько ТБ или несколько дней. Желательно что бы доступ к файлам был с минимальной задержкой.
есть два варианта:
1. пишем каждый поток в SQLite или какую-то другую SQL БД, отдельные фреймы (кадры) храним в сжатом виде (H.264, JPG) в BLOB-ах. Размер фреймов всегда разный от 20 до 200 кБ.
2. В SQL храним только линки на данные и описатели этих данных, причем постоянной длинны. А сами потоки данных храним в файловой системе. Причем пишем так что бы исключить фрагментации ФС. (для этого пишем в файлы равного размера, при создании и удалении файлов доступ к диску монопольный). SQL индекс хранится на системном диске, а файловый архив на отдельном (возможно рэйд).
Вообщем вопроса два:
-возможно ли при первом способе добиться производительности первого, ну хотя бы 80%. Если да то за счет чего? И какую БД выбрать.
-возможно ли при втором способе добиться удобства как в первом. Скорость разработки, тоже важна.
Для меня ответ очевиден, но может чего не знаю. И еще нужна аргументация, что бы убедить коллег.