JBoss.org Community Documentation
A
Cache
consists of a collection of
Node
instances, organised in a tree
structure. Each
Node
contains a
Map
which holds the data
objects to be cached. It is important to note that the structure is a mathematical tree, and not a graph; each
Node
has one and only one parent, and the root node is denoted by the constant fully qualitied name,
Fqn.ROOT
.
The reason for organising nodes as such is to improve concurrent access to data and make replication and persistence more fine-grained.
In the diagram above, each box represents a JVM. You see 2 caches in separate JVMs, replicating data to each
other.
These VMs can be located on the same physical machine, or on 2 different machines connected by a network link.
The
underlying group communication between networked nodes is done using
JGroups
.
Any modifications (see API chapter ) in one cache instance will be replicated to the other cache. Naturally, you can have more than 2 caches in a cluster. Depending on the transactional settings, this replication will occur either after each modification or at the end of a transaction, at commit time. When a new cache is created, it can optionally acquire the contents from one of the existing caches on startup.