Hola en mi sistema habrá un nodo maestro y n nodos esclavos, donde el nodo maestro distribuirá la solicitud entrante a uno de sus nodos esclavos. Para utilizar el contenido de la memoria caché, quiero hacer un seguimiento de las últimas 50 solicitudes (hash de la solicitud entrante) que el nodo esclavo ya sirvió (en el supuesto de que la última solicitud 50 ya estará allí en la memoria caché, para que el nodo atenderá la solicitud rápidamente). Por lo que he estudiado, la eliminación es difícil en el filtro de floración. Pero también se puede hacer contando el filtro. ¿Es realmente posible mantener el filtro de floración como una ventana en movimiento (como después de la solicitud 50 debe eliminar desde el frente para acomodar la nueva solicitud). ¿Es realmente posible hacer eso o hay otro filtro como filtro de floración (que debe ser lo suficientemente rápido como para verificar la presencia del elemento).Filtro Bloom para almacenar los últimos 50 datos solamente
Respuesta
Si solo tiene 50 elementos que está siguiendo, no creo que un filtro Bloom sea una estructura de datos adecuada. Los filtros Bloom son buenos cuando tiene una cantidad masiva si los datos no se pueden guardar en la memoria y desea realizar un prefiltrado para eliminar búsquedas innecesarias en alguna estructura de datos remota, como una base de datos remota. Si tiene solo 50 elementos, es casi seguro que le conviene usar algo así como una tabla hash para almacenar esos valores, ya que puede obtener respuestas exactas en el tiempo esperado de O (1) con una sobrecarga de espacio mínima.
Si desea realizar un seguimiento de los últimos 50 elementos que ha visto, considere buscar en una tabla hash vinculada, que admite la inserción, búsqueda, eliminación y eliminación más antigua todo en O (1) vez. El LinkedHashMap
de Java debería ser genial aquí.
Espero que esto ayude!
- 1. ¿Frente al filtro Bloom?
- 2. ¿Cuántas funciones hash necesita mi filtro Bloom?
- 3. ¿Cuándo es útil un filtro Bloom?
- 4. ¿Filtro Bloom o hash de cuco?
- 5. ¿Cómo puedo obtener los últimos 50 documentos en mongoDB?
- 6. tipo de datos mysql para almacenar mes y año solamente
- 7. Android: ¿cómo obtener los últimos 50 datos de ubicación de la célula (torre)?
- 8. Implementación eficiente de un filtro Bloom en C?
- 9. Gráfico: solamente mantener los datos más relevantes
- 10. ¿Cuál es el mejor momento y espacio: filtro Bloom, tabla Hash o Diccionario?
- 11. Esquema de la base de datos para almacenar datos SNMP
- 12. expresión regular de PHP - número de filtro solamente
- 13. cortar los últimos caracteres
- 14. Almacenar el resultado del filtro Jinja
- 15. Usando una variable estática para almacenar en caché los datos
- 16. PHP rand() ... obtener verdaderos 50/50 resultados?
- 17. Django: Recolecte solamente los archivos estáticos cambiados
- 18. LINQ para seleccionar últimos registros
- 19. Estructura de datos para almacenar Rangos
- 20. Almacenar en Datos de Sesión vs almacenar en Base de Datos Sql para datos temporales
- 21. Enfoques para almacenar datos geoespaciales en Redis
- 22. Rieles 3- Recuperar los últimos N registros
- 23. Consulta de Oracle para obtener datos de la tabla insertada en los últimos 10 minutos
- 24. openGL/GLSL: bloom/blur, representación en FBO
- 25. ¿Estructura de datos para almacenar una gran cantidad de datos?
- 26. Estructura de datos para almacenar matrices dispersas
- 27. Uso de archivos XML para almacenar datos
- 28. Estructura de datos para almacenar eventos recurrentes?
- 29. Uso de HttpContext.Current.Application para almacenar datos simples
- 30. MySQL BORRAR todos menos los últimos registros X