лады. сам повешу виртуалбокс какой-нить
Вид для печати
лады. сам повешу виртуалбокс какой-нить
Можно подойти с другой стороны. Пусть будет по вашему. Округлим для 2тб диска. Получим - 268 миллионов файлов нулевого размера. Одна фотка допустим весит 1 метр (хотя это очень мало для фотографий, но я дам вам фору). Диск 2 тб и того можно сохранить - 2 097 152 фотографии. Вопрос будут ли эти фотографии равномерно распределены по 16 каталогам, если распределение происходит не по кол-ву, а по хеш-сумме (фактически имени файла)?
не ровно по 131 тыще. +- тыщ 10. конечно всегда есть минимальный шанс 1 к 2^80 вроде для sha1 когда появиться коллизия.
2 097 152 фоток по 4368 директориям а не по 16.
На двух миллионов фотографий (слишком мизерное кол-во) достичь равномерного распределения по первым пяти буквам хеш суммы практически невозможно. На нескольких миллиардов можно попытаться, но ведь у нас диск то всего на 2 тб :) .
Mulder, ну вы же проверяете. напишите скрипт который генерит рандомные имена файлов и используюя мою функцию генерации пути их раскладывает (пустые файлы много места не займут) и потом посмотрите как уложилось 2млн файлов. можете даже 1млрд проверить.
Я уже быстро посчитал. С вложенностью каталогов, согласен, будет 16 в 16 степени вариаций, т.е. 1 048 576 конечных каталогов. А файлов то всего в два раза больше. Какова вероятность того, что в каждом конечном каталоге будет ровно по 2 +- 2 файла? Я думаю, ничтожно мала. Более того, я думаю, что и распределение самих каталогов будет неравномерным.
чтобы понять как оно будеть равномерно почитайте как работает sha1. у хешей всегда равномерное рсапределение во избежание коллизий (взлома)
Даже не так, каталогов будет еще больше. 5 уровней вложенности. На каждом уровне может быть по 16 каталогов. В каждом из 16 каталогов будет по 16 подкаталогов. Т.е. каталогов несметное кол-во упрется в размер диска.
Тогда ситуация может быть иной, когда вся масса фотографий разместиться например на уровне:
images/a/b/c/только_тут_начинается_разд� �ление/ - здесь находиться 1,5 млн фотографий
images/z/только_тут_начинается_разд� �ление/- здесь находиться оставшийся 1 миллион фотографий
Такое распределение будет неравномерным. Ваша система не имеет подсчета кол-ва фотографий в режиме реального времени. Т.е. какой файл куда попадет определятся наобум.