55
events were organized by JUG Switzerland during 2023.

Born in Switzerland, I completed my Masters and PhD at the University of Zurich (1997). After some time at IBM Research, and then various smaller companies, I moved to Ithaca, NY, for a 2-year post-doc at Cornell. Instead of returning to Switzerland, I moved to California where I worked as a principal software engineer at Fujitsu Network Communications (EMS/NMS systems). In 2003 I joined JBoss Inc to work full-time on open source. I relocated back to Switzerland in 2004.

My interests include protocol design and implementation, group communication, Linux, Java, trail running, triathlon and beerathlon. If not hacking on JGroups I can be found spending time with my family.

08.09.2004

JBossCache:

a replicated transactional cache for POJOs

LOCATION: Zürich


SPEAKER: Bela Ban   COMPANY: JBoss
SLIDES: 040809_12JBossCache.pdf

TreeCache is essentially a tree which provides for its contents to be replicated between address spaces. It supports J2EE transactions (javax.transaction.Transaction), which allows a user to bundle modifications to the tree in a transaction, and to replicate (at TX commit time) or abort (at TX rollback time) all modifications as one unit of work. Alternatively, when transaction support is disabled, replication takes place after each modification.

Replication can be synchronous (blocking the caller until all nodes in the cluster have applied the modification), or asynchronous (replicating the modification in the background).

The TreeCache is used for clustering in the JBoss appserver, but can also be used standalone.

TreeCacheAop is a subclass of TreeCache that accepts regular POJOs (Plain Old Java Objects) as contents. Any POJO added to the tree under a given key will be transparently replicated between trees, and access to the POJO can be transactional.

POJOs do not need to be serializable, because TreeCacheAop uses a combination of reflection and dynamic AOP to (a) determine the structure of a POJO and (b) detect when any fields in a POJO have been changed. Point

  1. allows for dynamic mapping of any POJO onto the underlying TreeCache, point
  2. allows (through field interception) to record all modifications to a POJO during a transaction.
When the transaction commits, we know exactly
  1. whether an object has been modified or not and,
  2. if yes, what fields have been modified.

This allows us to prevent unnecessary replication (point 1) and to replicate only the fields that have changed (point 2), resulting in less network traffic due to unnecessarily replicating entire objects using serialization.

The TreeCache/TreeCacheAop combo will be used in JBoss for HTTP session replication, Stateful Session Bean replication, replicated entity bean cache and the replicated JNDI.

Born in Switzerland, I completed my Masters and PhD at the University of Zurich (1997). After some time at IBM Research, and then various smaller companies, I moved to Ithaca, NY, for a 2-year post-doc at Cornell. Instead of returning to Switzerland, I moved to California where I worked as a principal software engineer at Fujitsu Network Communications (EMS/NMS systems). In 2003 I joined JBoss Inc to work full-time on open source. I relocated back to Switzerland in 2004.

My interests include protocol design and implementation, group communication, Linux, Java, trail running, triathlon and beerathlon. If not hacking on JGroups I can be found spending time with my family.


top

Supporting members

Platin

Gold

Silver

 
 

 

About

JUG Switzerland aims at promoting the application of Java technology in Switzerland.

JUG Switzerland facilitates the sharing of experience and information among its members. This is accomplished through workshops, seminars and conferences. JUG Switzerland supports and encourages the cooperation between commercial organizations and research institutions.

JUG Switzerland is funded through membership fees.

Design
Partner

 

Contact

Java User Group Switzerland
8000 Zürich
info@jug.ch

© Java User Group Switzerland