на главнуюВсе эхи RU.NETWORKS
войти ?

Re: Посоветовать хэш

От Eugene Grosbein (2:5006/1) к Alex Aka Parasite

В ответ на Заголовок предыдущего сообщения в треде (Имя Автора)


Reply-To: eugen@grosbein.pp.ru

17 авг 2009, понедельник, в 20:28 KRAT, Alex Aka Parasite написал(а):

AAP> Прошу разбирающихся посоветовать алгоритм хэширования под следующую
AAP> задачу:
AAP> 1. Сервер
AAP> 2. Hа нем - проект, писанный на перле + апач для междумордия с
AAP> пользователем.
AAP> 3. Там же - БД.
AAP> 4. Там же, на винте - хранилище контента под проект. Контент представляет
AAP> из
AAP> себя многие и многие *миллионы* мелких бинарных файлов, размером от
AAP> десятков
AAP> байт до десятков килобайт, и их число постоянно растет. Каждый файлик уже
AAP> упакован (.bz2).

AAP> Требуется: поиметь для каждого файлика хэш, кой и положить в БД в
AAP> соответствуюшие контенту ячейки.
AAP> 1. *Очень критично* отсутствие коллизий (одинакового хэша на разные по
AAP> составу
AAP> файлы). Учитывая количество единиц файлА - такое теоретически возможно...
AAP> Hа самый крайний случай возможна комбинация пары значений - например,
AAP> хэша+размера файла, но это не так изящно уже...

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

AAP> 2. Желательно юзать стандартный общеупотребимый алгоритм(-ы), чтобы не
AAP> изобретать велосипеда.
AAP> 3. Желательно посоветовать быстрые, "нетяжелые" алгоритмы - работа с
AAP> контентом
AAP> идет довольно плотная, в мультиюзер-моде, а перл сам по себе не самый
AAP> проворный.
AAP> Вот... У кого какие идеи? Всем откликнувшимся - заранее спасибо.

Иерархия модулей Digest::*, если FreeBSD - смотри locate p5-Digest

Есть даже Digest::PerlHash - доступ к встроенной хеш-функции перла :-)
Пользовать правда не рекомендую, при апгрейде перла она может начать
выдавать совсем другие хеши. Hо модулей в иерархии дофига, выбирай под себя.

Eugene
--
Как жаль, что не роняли вам на череп утюгов.
Скорблю о вас - как мало вы успели.
--- slrn/0.9.8.1 (FreeBSD)
* Origin: Svyaz Service JSC (2:5006/1@fidonet)

Ответы на это письмо:

From: Username
Заголовок следующего сообщения в треде может быть длинным и его придется перенести на новую строку

From: Username
Или коротким

FGHI-url этого письма: area://RU.NETWORKS?msgid=www.svzserv.kemerovo.su+29416303