Как правильно организовать хранение большого количества небольших файлов?
От: push  
Дата: 29.02.16 10:42
Оценка:
Планирую написать программу-библиотеку.
Задача: есть несколько не связанных между собой компьютеров. На каждом 40-50 тысяч книг/журналов/статей/документов и т.п. в популярных форматах (pdf, djvu, doc, html, tiff). На некоторых машинах ожидаются незначительные изменения (1-2 тысячи добавятся/удалятся/изменятся). На других — значительные изменения: документы будут добавляться до количества как минимум 300 тысяч.
Если запрашиваемый документ на текущей машине не найден — то будут опрашиваться все машины из списка.
На данный момент все документы хранятся как простые файлы в папках. База будет содержать небольшое описание документа/книги + заметки персонала.
Встал вопрос как правильно организовать хранение большого количества файлов?
1) Может имеет смысл положить их в базу? И потом по запросу доставать во временную папку и показывать пользователю. Из плюсов — что удобнее бекапить, можно бекабить блобом, соответсвенно скорость бекапа будет выше + случайно потерять документ сложно. Из минусов — как-то мне не нравится, что полноценную самодостаточную сущность нужно запихивать в базу.
2) Либо оставить всё так как есть? И в базе хранить только пути к книгам/документам? Из плюсов — проще на данном этапе, хранение возлагается на файловую систему. Из минусов — бекап множества мелких файлов занимает очень много времени + потенциальная возможность получить неконсистентность данных, когда файл удаляется/добавляется не xxthtp мою программу.
Нужен совет как поступить лучше.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.