Мне интересно, было бы хорошей идеей использовать хэши (CityHash, Murmur и т. П.) В качестве ключей в хранилище с ключом, например Hazelcast. Я ожидаю, что в базе данных будет около 2 000 000 000 записей (URL-адресов), поэтому могут произойти столкновения. Было бы не очень важно потерять некоторые данные с помощью хеш-коллизий, но, конечно, лучше было бы их избежать.Использование хешей в качестве идентификаторов в хранилищах значений ключа
Запись содержит URL-адрес, отметку времени, код состояния. Основными операциями являются вставка и поиск того, существует ли URL-адрес уже.
Итак, что вы могли бы предложить, учитывая скорость имеет значение:
- с помощью ID generator или
- с использованием хэш-алгоритма, как CityHash или ропота или
- используя соответствующую строку, URL в этом случае, сам?
Какова остальная часть данных, которые необходимо хранить? Какие операции необходимо выполнить? Просто вставьте и проверьте дублирование? Или вы считаете посещения или отчеты по истории URL? Многие хранилища ключевых значений, которые я видел, будут обрабатывать строковые ключи с хэшированием за кулисами, включая прозрачную обработку хеш-коллизий между отдельными строками. Таким образом, добавление собственного хеш-кода может ухудшить производительность. –
Спасибо за ваш комментарий. Я добавил некоторые детали к моему вопросу. – deamon