Re: Посоветовать алгор итм хэширования
От Vladimir N. Oleynik (2:5020/400) к Basil A.
В ответ на Заголовок предыдущего сообщения в треде (Имя Автора)
From: "Vladimir N. Oleynik" <dzo@simtreas.ru>
Здарофъ, Basil
BAS> Вычитываем CRC-32 из имеющихся пожатых бинарей и сохраняем их в базе вместе с
BAS> размером (исходных) данных.
Хм, Вы спорите что-ли? Всё моё отличие от Вашего алгоритма только в том,
что хеши я предлагаю держать не в базе (ну не поместится она в кеш и
вероятность повторного обращения к тому, что поместится - невелика.).
BAS> Для пришедшего бинаря отбираем из таблицы кандидатов на совпадение.
BAS> С кандидатами можно поступать по разному - построить дополнительный хэш на
Размер файла - тоже хеш. Идеально плохой по распределению вероятности, но
абсолютно идеально быстрый.
BAS> приступать к сравнению новичка с кандидатами на совпадение.
Hапоминаю, что сравнение сразу же прекратится, как только первый же байт
будет разным в одинаковых по объёму файлах с коллизией хеша.
Так что лучше - дёргаться к базе при каждом обращении пользователя, или
только при коллизии к вероятнее всего одному первому блоку данных?
А БД будет тривиальная, не требующая всяких там sql.
Я таки решился этот алгоритм присобачить к своей программулинке,
посмотим, как оно будет в реально рабочем проекте. Весьма получается
просто и элегантно.
--w
vodz
--- ifmail v.2.15dev5.4
* Origin: Treasury dept. of Ulyanovsk region (2:5020/400)
Ответы на это письмо:
From: Username
Заголовок следующего сообщения в треде может быть длинным и его придется перенести на новую строку
From: Username
Или коротким