2010-09-05 24 views
8

Tengo algunas preguntas sobre el atributo "overflowToDisk" del elemento?Cuando overFlowToDisk se activa en EHCACHE?

1) He leído en este URL que:

overflowToDisk Establece si el elemento puede desbordar en el disco cuando el almacenamiento de memoria ha alcanzado el límite máximo.

"Memoria" anterior se refiere a la memoria JVM asignada para el proceso Java que ejecuta EHCACHE, o hay algún parámetro para especificar el tamaño de la memoria caché?

2) Cuando los poces que ejecutan EHCACHE terminan por alguna razón, si este disco se borra y todo en la memoria caché se desvanece?

Respuesta

9

Los elementos comienzan a desbordarse en el disco cuando tiene más de maxElementsInMemory de ellos en el almacén de memoria. El siguiente ejemplo crea un caché que almacena 1000 elementos en la memoria y, si es necesario almacenar más, hasta 10.000 en el disco:

<cache name="cacheName" 
     maxElementsInMemory="1000" 
     maxElementsOnDisk="10000" 
     overflowToDisk="true" 
     timeToIdleSeconds="..." 
     timeToLiveSeconds="..."> 
</cache> 

Para la segunda pregunta, echar un vistazo a la parámetro diskPersistent. Si se establece en verdadero, Ehcache mantendrá sus datos almacenados en el disco cuando detenga la JVM. El siguiente ejemplo demuestra esto:

<cache name="cacheName" 
     maxElementsInMemory="1000" 
     maxElementsOnDisk="10000" 
     overflowToDisk="true" 
     diskPersistent="true" 
     timeToIdleSeconds="..." 
     timeToLiveSeconds="..."> 
</cache> 
3

Como de Ehcache 2.6, el modelo de almacenamiento ya no es un desbordamiento uno sino una niveles. En el modelo de almacenamiento por niveles, todos los datos siempre estarán presentes en el nivel más bajo. Los artículos estarán presentes en los niveles superiores según su hotness.

niveles posibles de código abierto Ehcache son:

  • on-pila que se encuentra en el montón JVM
  • en disco que es el más bajo

por los altos niveles de definición tienen menor latencia pero menos capacidad que los niveles inferiores

Por lo tanto, para una memoria caché de código abierto configurada con overflowToDisk, todos los datos estarán siempre dentro del nivel del disco. Almacenará la clave en la memoria y los datos en el disco.

Respondida copia en this other question.

Cuestiones relacionadas