Хеш-функция для файлового хостинга сайта - PullRequest
0 голосов
/ 08 сентября 2011

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

Проблема в том, что sha1 / md5 медленны для больших файлов и ожидаемый трафик высок. Какое лучшее решение? Хеширование в памяти при получении файла от пользователя по сети?

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

Ответы [ 3 ]

0 голосов
/ 09 сентября 2011

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

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

0 голосов
/ 09 сентября 2011

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

0 голосов
/ 08 сентября 2011

Какую хеш-функцию лучше всего использовать на веб-сайте хостинга файлов?

SHA лучше, чем MD5.

Проблема в том, что sha1 / md5 медленны для больших файлов и ожидаемый трафик высок.Какое лучшее решение?Хеширование в памяти при получении файла от пользователя по сети?

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

...