Причины распределения файлов по многим папкам вместо одной

Я рассматриваю код унаследованного приложения, написанного на Java, сервере доставки контента. У них есть файловый репозиторий, в котором все содержащиеся файлы названы в честь хеш-кода MD5 их содержимого.

7ABC1FBF6109EAB64DF6682158317181.dat

Есть тысячи этих файлов. Структура файла хранилища следующая:

C:/base/resources/repository/{First two digits of hex MD5 hash}/{MD5 hash hex}.dat 

например:

C:/base/resources/repository/7A/7ABC1FBF6109EAB64DF6682158317181.dat

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

Я действительно не могу думать ни о чем.

Приложение работало на машине с Linux, я не знаю, какой дистрибутив или какую файловую систему они использовали.

3 ответа

Решение

Некоторые вызовы файловой системы становятся очень медленными, когда один каталог содержит огромное количество файлов, особенно в Windows. И их также сложнее администрировать, потому что простое перечисление их содержимого слишком медленное и возвращает слишком много записей.

Инструменты с графическим интерфейсом, такие как инструменты управления файлами, могут зависать, или может потребоваться много времени, чтобы кратко изучить содержимое, если эта папка также удалена (NAS, SAMBA). Конечно, приложение может лучше группировать файлы по дате или что-то еще менее случайное.

По свойствам хеша

{First two digits of hex MD5 hash}/{MD5 hash hex}.dat

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

Другие вопросы по тегам