Pregunta

Cómo establecer la limitación del tamaño de la memoria caché L1 o L2. Me refiero a aumentar el tamaño del caché. Una forma es definir el tiempo de espera para el caché, pero quiero saber, ¿es posible hacer una restricción por el tamaño de la memoria caché o no?

RGDS Navid

¿Fue útil?

Solución

Cómo establecer la limitación del tamaño del caché L1

No puedes. La única opción es clear El contexto de persistencia manualmente a intervalos regulares si desea "controlar" (en realidad, clear es muy agresivo, elimina Todas las entidades) su tamaño.

Cómo establecer la limitación del tamaño de caché L2

Esto depende del proveedor de caché subyacente. En otras palabras, esto se hace configurando la implementación de caché L2. Por ejemplo, Ehcache tiene un maxElementInMemory parámetro.


¿Qué pasa en L1? ¿Cuántas entidades estarán en la memoria a medida que pase el tiempo? ¿Sin alguna restricción?!

Por mucho que lo pongas, hasta un eventual OutOfMemoryError, de ahí la necesidad de clear explícitamente:

  • en trabajos de lotes grandes (incluso si ocurren en una sola transacción)
  • Si una larga vida EntityManager se usa

Pero el patrón habitual es usar un de corta duración EntityManager Y la mayoría de los casos de uso no son trabajos por lotes, por lo que esto no es una preocupación.

Ver también

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top