Что такое bloom filter?

Middle+
346 просмотров
AFK Offer AI

Bloom filter — вероятностная структура данных, которая отвечает на вопрос "есть ли элемент в множестве". Может дать false positive (сказать "да" когда элемента нет), но никогда false negative. Использует битовый массив и несколько хеш-функций. Очень компактная: миллион элементов можно хранить в нескольких килобайтах. Применяется в базах данных (проверить, есть ли ключ на диске, перед чтением), кешах, спам-фильтрах. В Go есть библиотеки вроде willf/bloom.

Следующий вопрос

Что такое CGO и когда оно нужно?