Introducción a los Filtros de Bloom
Contrario a la creencia popular, los filtros de Bloom son en realidad altamente escalables y se utilizan ampliamente en sistemas que manejan grandes volúmenes de datos en crecimiento. Este artículo explorará cómo funcionan estos filtros y por qué son beneficiosos para sistemas escalables.
¿Por Qué Son Escalables los Filtros de Bloom?
Los filtros de Bloom se caracterizan por:
- Uso constante de memoria: emplean un arreglo de bits de tamaño fijo, lo cual no aumenta linealmente con la cantidad de elementos almacenados.
 - Búsquedas rápidas: las consultas de membresía se realizan en tiempo constante, sin importar el número de elementos.
 - Variants escalables: existen versiones avanzadas como los Filtros de Bloom Escalables, que pueden crecer dinámicamente a medida que se agregan más elementos, manteniendo una tasa de falsos positivos acotada.
 
Casos de Uso en Sistemas Escalables
Los filtros de Bloom se aplican en:
- Bases de datos: Utilizados en sistemas como Apache Cassandra para verificar rápidamente si una fila existe en un archivo, incluso con millones de registros.
 - Cachés distribuidos: Empleados en cachés distribuidos (por ejemplo, Redis, ElastiCache) para evitar búsquedas de disco costosas.
 - Routers de red: Utilizados para rastrear eficientemente grandes conjuntos de direcciones IP o URLs.
 - Correctores ortográficos y Índices de búsqueda: Aplicados en escenarios donde el espacio de memoria es limitado pero el conjunto de datos es grande.
 
Limitaciones
A pesar de sus ventajas, los filtros de Bloom presentan ciertas limitaciones:
- Falsos positivos: pueden indicar incorrectamente que un elemento está presente.
 - No admiten eliminación: los filtros de Bloom estándar no permiten la eliminación de elementos, aunque hay variantes como los filtros de recuento que lo hacen.
 - Tamaño fijo (usualmente): los filtros tradicionales tienen un tamaño fijo, pero las versiones escalables superan este problema.
 
Conclusión
Los filtros de Bloom son una herramienta excelente para aplicaciones de búsqueda escalables donde la eficiencia de espacio y la rapidez de búsquedas son críticas. La idea de que sólo son buenos para "búsquedas que no escalan" es un malentendido.
Descubre cómo otros founders implementan estas soluciones…
Fuentes
- https://notpeerreviewed.com/blog/bloom-filters/ (fuente original)
 - https://aws.amazon.com/blogs/database/implement-fast-space-efficient-lookups-using-bloom-filters-in-amazon-elasticache/
 - https://blog.algomaster.io/p/bloom-filters
 - https://dev.to/zeeshanali0704/when-bloom-filters-fail-to-bloom-what-you-should-know-problems-with-bloom-filters-22l5
 - https://www.bytedrum.com/posts/bloom-filters/
 - https://blog.cloudflare.com/when-bloom-filters-dont-bloom/
 - https://www.geeksforgeeks.org/system-design/bloom-filters-in-system-design/
 - https://gsd.di.uminho.pt/members/cbm/ps/dbloom.pdf
 - https://valkey.io/topics/bloomfilters/
 
					
			












