2012-01-09 7 views
6

Iam usando JCS para el almacenamiento en caché. Ahora estoy usando la memoria caché de disco para almacenar temporalmente todos los datos. El problema es que cuando uso JCS, las claves se escriben en el disco solo si el caché está correctamente apagar.JCS Caché apagado, persistencia garantizada en el disco

Estoy usando el patrón de uso del disco como ACTUALIZACIÓN que le dice a JCS que escriba datos inmediatamente en el disco sin guardarlos en la memoria. Pero el problema es que no estamos matando la lista de objetos en el caché. Así que utilizo el grupo acceder a la memoria caché y obtener las claves de la memoria caché y luego iterar a través de las teclas para obtener los resultados.

Así que ahora estoy atrapado en una situación en la que tengo que cerrar la caché correctamente, es decir, después de que todos los datos se escriben en el disco usando la caché de disco indexada. Pero aquí hay una complejidad, la caché de disco indexada usa una cadena de fondo para escribir en el disco que no devuelve nada en su estado.

Así que ahora, no puedo garantizar que la memoria caché de disco indexada haya escrito datos en el disco para mi implementación front-end. Hay una forma de abordar esta situación, porque ahora estoy durmiendo un tiempo aleatorio (digamos 10 segundos), antes de que se cierre el caché, que es una manera muy estúpida de hacerlo en realidad.

Editar: Estoy enfrentando este problema con memoria caché también, pero un sueño de un segundo es suficiente para 500mb de datos. Pero el caso de la memoria caché de disco es un poco diferente.

Respuesta

0

Podría ser porque sus objetos están almacenados en la memoria y esperando para escribir en el disco. Si necesita escribir los objetos inmediatamente en el disco mientras está en ejecución, entonces necesita hacer que el MaxObjects de las configuraciones de su caché sea 0.

jcs.region.<yourRegion>.cacheattributes.MaxObjects=0 jcs.region.<yourRegion>.cacheattributes.DiskUsagePattern=UPDATE

Te conozco ya es consciente de UPDATE. Agregándolo como referencia nuevamente.

Cuestiones relacionadas