2010-09-05 14 views
8

Ho alcune domande sull'attributo "overflowToDisk" dell'elemento?Quando overFlowToDisk viene attivato in EHCACHE?

1) Ho letto in questo URL che:

overflowToDisk stabilisce se elemento può traboccare disco quando il deposito di memoria ha raggiunto il limite massimo.

La "memoria" sopra fa riferimento alla memoria JVM allocata per il processo Java con EHCACHE in esecuzione o sono presenti parametri per specificare le dimensioni della memoria cache?

2) Quando i poces che eseguono EHCACHE si interrompono per qualche motivo, se questo disco viene cancellato e tutto nella cache è sparito?

risposta

9

Gli elementi iniziano a traboccare sul disco quando sono presenti più di maxElementsInMemory nell'archivio di memoria. L'esempio seguente crea una cache che memorizza 1000 elementi in memoria, e, se avete bisogno di memorizzare più, fino a 10000 su disco:

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

Per la seconda domanda, dare un'occhiata al parametro diskPersistent. Se è impostato su true, Ehcache manterrà i dati memorizzati sul disco quando si interrompe la JVM. L'esempio seguente dimostra questo:

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

A partire dal EHCache 2.6, il modello di archiviazione non è più un overflow uno, ma uno più livelli. Nel modello di archiviazione a più livelli, tutti i dati saranno sempre presenti nel livello più basso. Gli articoli saranno presenti nei livelli superiori in base al loro hotness.

possibili livelli per l'open source EHCache sono:

  • on-mucchio che si trova sulla JVM
  • su disco che è il più basso

per definizione alti livelli hanno una minore latenza ma meno capacità rispetto ai livelli inferiori.

Quindi, per una cache open source configurata con overflowToDisk, tutti i dati saranno sempre all'interno del livello del disco. Memorizzerà la chiave in memoria e i dati sul disco.

Risposta copiata da this other question.

Problemi correlati