Найти в Дзене

Как фильтры Блума в 16 раз ускорили API

Как фильтры Блума в 16 раз ускорили API В статье подробно рассказывается, как команда снизила задержки P95 конечной точки API с 5 до 0,3 секунды, применив фильтр Блума для эффективной фильтрации больших объемов данных в Postgres. 👉 Проблема заключалась в медленной фильтрации миллионов алертов в базе данных с десериализацией JSONB, что вызывало задержки до 5 секунд и более. 👉 Фильтр Блума — вероятностная структура данных, позволяющая быстро проверять принадлежность элемента множеству с незначительным числом ложноположительных результатов. 👉 Реализация фильтра Блума позволила перевести сложную фильтрацию атрибутов из JSONB в битовые операции в базе, что ускорило поиск и снизило нагрузку на память. 👉 Сравнение с индексом GIN показало, что фильтр Блума превосходит по производительности при больших объемах данных и частых фильтрациях. 👉 Введение ограничения выборки по времени (например, последние 30 дней) вместе с фильтром Блума уменьшило время ответа API примерно в 16 раз — до 0

Как фильтры Блума в 16 раз ускорили API

В статье подробно рассказывается, как команда снизила задержки P95 конечной точки API с 5 до 0,3 секунды, применив фильтр Блума для эффективной фильтрации больших объемов данных в Postgres.

👉 Проблема заключалась в медленной фильтрации миллионов алертов в базе данных с десериализацией JSONB, что вызывало задержки до 5 секунд и более.

👉 Фильтр Блума — вероятностная структура данных, позволяющая быстро проверять принадлежность элемента множеству с незначительным числом ложноположительных результатов.

👉 Реализация фильтра Блума позволила перевести сложную фильтрацию атрибутов из JSONB в битовые операции в базе, что ускорило поиск и снизило нагрузку на память.

👉 Сравнение с индексом GIN показало, что фильтр Блума превосходит по производительности при больших объемах данных и частых фильтрациях.

👉 Введение ограничения выборки по времени (например, последние 30 дней) вместе с фильтром Блума уменьшило время ответа API примерно в 16 раз — до 0,3 секунды.

https://habr.com/ru/articles/968024/

a State of .NET | Подписаться