Лучшая практика - структуры каталогов - PullRequest
0 голосов
/ 09 ноября 2011

Существует ли оптимальное количество каталогов для хранения изображений на диске перед группировкой в ​​подкаталоги.

Например, у меня есть коллекция из примерно 6000000 файлов изображений, которые я могу логически подгруппировать их внесколько слоев, но я не уверен в оптимальности для быстрого поиска.Мне не нужно искать диск, потому что я всегда буду знать его абсолютный путь.

Мои основные параметры:

1 каталог с 600 000 файлов (мои инстинкты говорят мне, что это не хорошо!) ИЛИ1 каталог с 1500 подкаталогами в каждом, в среднем 400 файлов (минимум 200 макс. 600) ИЛИ 1 каталог с 75 подкаталогами в каждом, в среднем 20 подкаталогов, в среднем 400 файлов в каждом.

Второй сценарий был бы моим идеальным выбором, но я обеспокоен тем, что это количество подкаталогов повлияет на производительность.

Обсудите, пожалуйста!

Роджер

Ответы [ 2 ]

0 голосов
/ 09 ноября 2011

Этот предыдущий вопрос одобряет плоские файлы в NTFS после экспериментов. Это имеет смысл, поскольку современные файловые системы будут хранить содержимое каталога в структуре с логарифмическим временем поиска, поэтому вы можете выбирать между log (n) и чем-то, что> = 2 log (sqrt (n)) - или, в лучшем случае, равно.

0 голосов
/ 09 ноября 2011

По моему опыту, это зависит от файловой системы (и даже от поставщика хранилища) ... за исключением того, что выбор # 1 ("Просто выгрузить все в одном месте") почти наверняка будет плохим.

Мы столкнулись с подобной проблемой и пошли с вариантом # 2. В нашем случае у нас были десятки миллионов пользователей, каждый из которых имел от 10 до ~ 1000 файлов. Мы получили структуру, которая выглядела так:

аб \ CD \ эф \ all_the_files

Часть ab указала точку монтирования, а cd \ ef - это два уровня подпапок внизу.

Если вы будете испытывать значительную нагрузку ввода-вывода, я настоятельно рекомендую вам протестировать нашу конфигурацию на оборудовании и в сети, которую вы собираетесь использовать в масштабе. И, конечно же, подумайте, как вы можете делать резервные копии и восстанавливать части данных, если это необходимо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...