Skip to main content.

3. Librerie DSO

 

2. Architettura DSO - 3. Librerie DSO - 4. TC Server

ASM logoLe librerie DSO (Distributed Shared Objects) lette a boot-time dai clients servono a dare, in modo trasparente, un comportamento di cluster a livello di JVM. Prima di tutto aggiungono dei comportamenti distribuiti alle operazioni di salvataggio e cancellazione degli oggetti dell’HEAP, in secondo luogo forniscono uno scambio di informazioni (SIGNALS) centralizzato per avere una sincronizzazione multi JVM.

In una JVM, ogni oggetto è salvato in memoria tramite le istruzioni bytecode PUTFIELD e GETFIELD. Terracotta modifica queste istruzioni a runtime, tramite ASM (libreria per la bytecode injection), nelle classi “configurate” che vengono caricate nell’application classloader. Grazie a queste istruzioni, terracotta è in grado di tenere replicati sui server del cluster, interi o parziali grafi di oggetti, comunicando le modifiche degli oggetti e le richieste di lock e unlock al server centrale terracotta.

questo è l’elenco delle istruzioni bytecode modificate:
GETFIELD, PUTFIEL, AASTORE, AALOAD, MONITORENTRY, MONITOREXIT, INVOKE0 e INVOKESPECIAL

2. Architettura DSO - 3. Librerie DSO - 4. TC Server