Although technically not part of the API, the
mode
in which the cache is configured to operate affects the cluster-wide
behavior of any
put
or
remove
operation, so we'll briefly mention the various modes here.
JBoss Cache modes are denoted by the
org.jboss.cache.config.Configuration.CacheMode
enumeration.
They consist of:
-
LOCAL
- local, non-clustered cache. Local caches don't join a cluster and don't
communicate with other caches in a cluster. Therefore their contents don't need to be Serializable;
however, we recommend making them Serializable, allowing you the flexibility to change the cache mode at
any time.
-
REPL_SYNC
- synchronous replication. Replicated caches replicate all changes to the other
caches in the cluster. Synchronous replication means that changes are replicated and the caller blocks
until replication acknowledgements are received.
-
REPL_ASYNC
- asynchronous replication. Similar to REPL_SYNC above, replicated caches replicate
all changes to the other caches in the cluster. Being asynchronous, the caller does not block until
replication acknowledgements are received.
-
INVALIDATION_SYNC
- if a cache is configured for invalidation rather than replication,
every time data is changed in a cache other caches in the cluster
receive a message informing them that their data is now stale and should
be evicted from memory. This reduces replication overhead while still being able to invalidate stale data
on remote caches.
-
INVALIDATION_ASYNC
- as above, except this invalidation mode causes invalidation messages
to be broadcast asynchronously.
See the
chapter on Clustering
for
more details on how the cache's mode affects behavior. See the
chapter on Configuration
for info
on how to configure things like the cache's mode.