Но стоит ли оно того? Если у вас есть хэш для каждого файла, то у вас, по сути, есть накладные расходы для каждого файла. Предположим, что каждый файл должен занимать не менее 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 байт, вы действительно хотите хешировать каждый байт на диске?)
person
Thanatos
schedule
11.06.2010