Skip to main content.

6. Virtual Heap

Oltre l’abilità di condividere gli oggetti e i segnali ai threads tra le diverse JVM, Terracotta permette anche un uso efficiente dell’HEAP locale. Infatti un grafo condiviso potrebbe crescere al di sopra delle dimensioni massime raggiungibile da una singola JVM. Terracotta gestisce gli oggetti condivisi in modo da tenere solo gli oggetti di cui la JVM ha bisogno, raggiunta la percentuale di memoria che la JVM può usare per gli oggetti condivisi, solitamente 70% (è configurabile), terracotta libera l’HEAP locale di un 10% tenendosi però delle reference (shadow object) a questi oggetti. Quando la JVM avesse necessità di questi oggetti (missing object), essi verrebbero immediatamente ricaricati dal server.
Quindi si può pensare che il cluster Terracotta ha un HEAP virtuale arbitrariamente grande come una enorme memoria di rete.
Questa caratteristica permette di avere applicazioni con un HEAP virtuale molto maggiore di un HEAP standard, qualsiasi hardware venga impiegato.