Entiendo lo que hace que los filtros de bloom sean una estructura de datos atractiva; sin embargo, me resulta difícil comprender realmente cuándo puede usarlos, ya que todavía tiene que realizar la costosa operación que está tratando de evitar para asegurarse de que no ha encontrado un falso positivo. Debido a esto, ¿no agregarían muchos gastos generales? Por ejemplo, el artículo de Wikipedia para filtros de bloom sugiere que se pueden usar para la sincronización de datos. Veo cómo sería genial la primera vez cuando el filtro de floración está vacío, pero di que no has cambiado nada y vas a sincronizar tus datos nuevamente. Ahora, cada búsqueda en el filtro de bloom informará que el archivo ya se ha copiado, pero ¿no tendríamos que realizar otra vez la tarea de búsqueda más lenta que intentamos evitar para asegurarnos de que es correcto?¿Cuándo es útil un filtro Bloom?
Respuesta
Básicamente, usa filtros Bloom para evitar la larga y ardua tarea de probar que un elemento no existe en la estructura de datos. Es casi siempre más difícil determinar si falta algo que si existe, por lo que el filtro ayuda a apuntalar las pérdidas buscando cosas que de todos modos no encontrarás. No siempre funciona, pero cuando lo hace, obtiene un gran beneficio.
Ok. Creo que fue algo como esto, pero esto ayudó a solidificar eso. Gracias. – blcArmadillo
Los filtros Bloom son muy eficientes en el caso de consultas de membresía, es decir, para saber si un elemento pertenece al conjunto. La cantidad de elementos en el conjunto no afecta el rendimiento de la consulta.
- 1. ¿Frente al filtro Bloom?
- 2. ¿Cuándo es útil un ConcurrentSkipListSet?
- 3. ¿Cuándo es útil File.join?
- 4. ¿Cuándo es útil __proto__?
- 5. ¿Cuántas funciones hash necesita mi filtro Bloom?
- 6. ¿Filtro Bloom o hash de cuco?
- 7. Implementación eficiente de un filtro Bloom en C?
- 8. Android - caché de dibujo - ¿cuándo es útil?
- 9. ¿Cuándo la evaluación perezosa no es útil?
- 10. ¿Cuándo es útil la salida de repr?
- 11. Filtro Bloom para almacenar los últimos 50 datos solamente
- 12. ¿Cuándo es útil una llamada a un método parametrizado?
- 13. Java: ¿Cuándo es útil un bloque de inicialización estático?
- 14. ¿Cuándo sería útil un flip-flop Ruby?
- 15. ¿Cuándo el @ se vuelve útil?
- 16. ¿Cuál es el mejor momento y espacio: filtro Bloom, tabla Hash o Diccionario?
- 17. ¿Cuándo es útil el operador de coma escalar de Perl?
- 18. ¿Puede alguien explicarme cuándo es útil usar MapMaker o WeakHashMaps?
- 19. ¿Cuándo es útil la propiedad del código compartido?
- 20. ¿Cuándo es útil la diferencia entre quotRem y divMod?
- 21. ¿Qué es exactamente un filtro de origen?
- 22. es jquery. ¿Es útil siempre?
- 23. ¿Es MVVM realmente útil?
- 24. ¿Cuál es la vida útil de un controlador ASP.NET MVC?
- 25. ¿Qué es un filtro Jersey?
- 26. ¿Qué es el patrón de Objeto humilde y cuándo es útil?
- 27. ¿Qué es útil sobre un parámetro referencia-a-matriz?
- 28. ¿Qué es Jython y es útil en absoluto?
- 29. ¿Es HttpContextWrapper todo eso ... útil?
- 30. ¿Qué tan útil es Response.IsClientConnected?
Un apilador compañero [ha preguntado acerca de las aplicaciones de filtro Bloom de primera mano] (http://stackoverflow.com/questions/3075301/what-problems-have-you-solved-using-bloom-filters) que podría encontrar interesante para descremada. – sarnold
Esa otra pregunta ha sido eliminada :-( – Spaceghost