Filtros de Bloom: precisión duplicada gracias a ingenieros

Fuentes: Database engineers improve bloom filter accuracy by 2x

Ingenieros de bases de datos en Floe han logrado mejorar la precisión de los filtros de Bloom, reduciendo los resultados falsos en un 2x. Los filtros de Bloom son estructuras de datos probabilísticas que aceleran significativamente las consultas SQL al permitir descartar rápidamente datos irrelevantes. Floe los utiliza en dos áreas críticas: el motor de almacenamiento (para evitar la descompresión innecesaria de columnas) y en las uniones hash (para evitar búsquedas infructuosas en tablas hash). La mejora se logró mediante una optimización en la implementación del filtro, que ahora utiliza dos bits dentro de una sola variable uint32, reduciendo la necesidad de múltiples accesos a la memoria y operaciones atómicas. Inicialmente, los filtros de Bloom podían generar hasta un 11.5% de falsos positivos, lo que limitaba su eficiencia. La nueva implementación, aunque introduce una ligera probabilidad de colisión, ofrece un rendimiento superior y una reducción significativa en el trabajo innecesario, llegando a una mejora de hasta 9x en la velocidad de escaneo y E/S. El sistema es adaptable, habilitando o deshabilitando el filtrado según la selectividad de la unión y el tamaño de los datos.