Я пробовал использовать фильтр цветения для проведения тестов на членство. Я хочу выполнить тесты на членство в 80 миллиардах записей, позволяя совершать около 100 столкновений, т. Е. Только 100 записей могут быть даны ложноположительным результатом.Альтернативы Bloom Filter
Я знаю, что это может быть достигнуто с помощью цветных фильтров, но с использованием формул определения количества бит, необходимых для каждой записи, и количества хеш-функций с учетом допустимой ложной положительной скорости. Я решил, что в конечном итоге я использую 270 ГБ памяти и 19 хэш-функций.
Я также посмотрел фильтр Cuckoo, но его требования к памяти не соответствуют моим требованиям. Мои требования заключаются в следующем:
- Используется при макс 6 битов на элемент
- использовать не более 7-8 хэш-функции.
Может ли кто-нибудь предложить мне вероятностную структуру данных, отличную от упомянутой выше, которая может помочь в достижении моих требований?
Кажется маловероятным, что вы найдете какую-либо структуру данных, которая позволит вам различать 80 миллиардов элементов с ложной положительной скоростью .00000000125, используя только 60 гигабайт, даже если у вас не было ограничения на число хэш-функций. У меня нет математики, чтобы доказать это, но мне кажется, что вы выдвигаете границы того, что теоретически возможно. –
Хорошо, если я увеличиваю свою память, или моя ложноположительная ставка идет до 1% предметов, тогда фильтр цветения хороший выбор для моего варианта использования или есть ли какая-либо другая вероятностная структура данных, которая может быть лучшим выбором? –