Но стоит ли это того?Если у вас есть хэш для каждого файла, то по существу у вас есть издержки для каждого файла.Предположим, что каждый файл должен занимать не менее 512 байт (типичный сектор диска) и что вы храните эти хэши достаточно компактно, чтобы каждый хеш не занимал намного больше, чем размер хеша.
Итак, даже если все ваши файлы имеют размер 512 байт, самый маленький, вы говорите либо 16 / 512 = 3.1%
, либо 32 / 512 = 6.3%
.На самом деле, я бы поспорил, что ваш средний размер файла выше (если все ваши файлы не имеют 1 сектор ...), так что накладные расходы будут меньше.
Теперь количество места, которое вам нужно для масштабирования хешейлинейно с количеством файлов, которые у вас есть.Это дополнительное пространство стоит , что много?Даже если у вас были упомянутые триллионы файлов - это 1 000 000 000 000 * 16 = ~29 TiB
, что занимает много места, но имейте в виду: ваши данные будут 1 000 000 000 000 * 512 = 465 TiB
.Цифры на самом деле ничего не стоят, так как они все еще 3%
или 6%
наверху.Но на этом уровне, где у вас есть половина петабайта памяти, имеет ли значение 15 терабайт?На каком-то уровне 3%
экономия означает что-нибудь?И помните, если они больше, вы экономите меньше.(Которые, вероятно, таковы: удачи в получении размера сектора 512 байт при таком размере жесткого диска.)
Итак, стоит ли 3%
или менее экономия диска потенциального риска для безопасности.(Который я оставлю без ответа, так как это не моя чашка чая.)
В качестве альтернативы, вы могли бы, скажем, сгруппировать файлы некоторым логическим способом, чтобы у вас было меньше файлов?(Я имею в виду, если у вас триллионы файлов по 512 байт, вы действительно хотите хешировать каждый байт на диске?)