Re^4: Посоветовать хэш
От Alexander Gusak (2:5020/175.2) к Alex Aka Parasite
В ответ на Заголовок предыдущего сообщения в треде (Имя Автора)
From: "Alexander Gusak" <agusak@skengstroy.ru>
Wed Aug 26 2009 00:18, Alex Aka Parasite wrote to Alexander Gusak:
AAP> Кстати, слова "хэш" в проекте не было. Там были слова "исключить
AAP> возможность коллизий". Хэш видится быть примененным в данной задаче
AAP> лично мне. С интересом выслушаю другие варианты, сравнимые по
AAP> трудоемкости\быстродействию\человекомашиночасам для введения оных в
AAP> работу.
AG>> Хэш использовать для проверки возможных совпадений при добавлении в
AG>> базу. При обнаружении совпадающих хэшей - проверять содержимое. Если
AG>> коллизия, добавлять с уникальным идентификатором, если повтор - не
AG>> добавлять.
AAP> Желательно *разово* обработать уже имеющийся контент, результаты
AAP> покласть в базу, и далее оперировать только с ней (это было в проекте,
AAP> как и слово "желательно " а не "необходимо").
Чтобы получить устраивающий ответ, надо задавать правильный вопрос. У меня из
обмолвок складывается некоторое впечатление, что база должна функционировать
вообще без доступа к этой помойке файлов - например, во избежание появления их
содержимого у продавцов в метро. Так?
В принципе, теоретически видятся только два варианта, которые _могут_ быть
ответом на вопрос в том виде, как он сейчас задан. Использовать в виде
идентификатора само содержимое файла, если надо - страшно его зашифровав
каким-нибудь ГОСТом. Либо заложиться на предел количества файлов, заведомо на
три порядка больший их ожидаемого количества (чтобы если последствия и
наступят, то только для далеких потомков), ну 100 миллиардов скажем. И копать
в сторону perfect hash для такого множества, там уникальность будет доказуема.
Да, неоптимально по объему базы и производительности. А кто сказал, что любая
задача решается оптимально по произвольно выбранным критериям? Если у вас
критерий алгоритма - уникальность, значит производительность придется
вытягивать другими способами, аппаратными, организационными итд.
Я своим сотрудникам и заказчикам люблю повторять: "Любую работу можно
выполнить быстро, хорошо и дешево - только выберите из этого любые два".
С уважением
Александр Гусак
--- ifmail v.2.15dev5
* Origin: FidoNet Online - http://www.fido-online.com (2:5020/175.2)
Ответы на это письмо:
From: Username
Заголовок следующего сообщения в треде может быть длинным и его придется перенести на новую строку
From: Username
Или коротким