Как называется сортировка каталога с большим количеством файлов по подкаталогам? [closed]

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

Например:

- a8debcdcf0d2302ccde5a43bb1fb385e81098342.jpg
- 91ff48de8cfc6468bdc2115cf87cfb6547eee713.jpg
- 99d002e2065cdf02bd6d04bf29a8230564719b76.jpg
...

Вышеупомянутые файлы сортируются по подкаталогам аналогично этому:

- a/
  - 8/
    - a8debcdcf0d2302ccde5a43bb1fb385e81098342.jpg
- 9/
  - 1/
    - 91ff48de8cfc6468bdc2115cf87cfb6547eee713.jpg
  - 9/
    - 99d002e2065cdf02bd6d04bf29a8230564719b76.jpg

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

Есть ли формальное название для этого метода организации файлов?

5
задан 14 October 2014 в 04:06
3 ответа

Я всегда называл это хеш-фрагментом.

При таких структурах следует помнить о нескольких вещах:

  • Каждый каталог создает inode. Если вы разбиваете каждый символ, один файл может привести к созданию, скажем, 33 inodes. У вас закончатся inodes, прежде чем у вас закончится место.
  • Если вы разбиваете на группы (скажем, первые n символов, а затем вторые n символов), сохраняйте свои наборы достаточно маленькими, вы не заставляете inodes для расширения, что замедлит поиск.
  • Если ваш хэш значительно случайен, у фрагментов 3-го и последующих порядков практически никогда не будет братьев и сестер, поэтому вы можете разделить фрагменты вроде ... 1234/5678/901234567890 и т.д. ваши inodes маленькие.
4
ответ дан 3 December 2019 в 01:24

Похоже, это просто называется «хэшированная структура каталогов», например, на http: //michaelandrews.typepad.com / the_technical_times / 2009/10 / create-a-hashed-directory-structure.html :

Как можно хранить большое количество файлов, сохраняя при этом высокий уровень производительности во время доступа? Одно из решений - хеширование имени файла.

2
ответ дан 3 December 2019 в 01:24

Это называется B-Tree (не связано с двоичным деревом).

1
ответ дан 3 December 2019 в 01:24

Теги

Похожие вопросы