7.6. Configure Distribution Mode (Library Mode)
The following procedure shows a distributed cache configuration in Red Hat JBoss Data Grid's Library mode.
Procedure 7.2. Distributed Cache Configuration
Configure the Clustering Element
<clustering mode="distribution"> <sync replTimeout="${TIME}" /> <stateTransfer chunkSize="${SIZE}" fetchInMemoryState="{true/false}" awaitInitialTransfer="{true/false}" timeout="${TIME}" />
- The
clustering
element'smode
parameter's value determines the clustering mode selected for the cache. - The
sync
element'sreplTimeout
parameter specifies the maximum time period in milliseconds for an acknowledgment after a remote call. If the time period ends without any acknowledgment, an exception is thrown. - The
stateTransfer
element specifies how state is transferred when a node leaves or joins the cluster. It uses the following parameters:- The
chunkSize
parameter is the number of cache entries to be transferred in one chunk. The defaultchunkSize
value is 512. ThechunkSize
depends on many parameters (for example, size of entries) and the best setting needs to be measured. To change the value for larger cache entries, smaller chunks are advisable and for smaller cache entries, increasing thechunkSize
offers better performance. - The
fetchInMemoryState
parameter when set totrue
, requests state information from neighboring caches on start up. This impacts the start up time for the cache. Set the default totrue
if there is no shared cache store behind to avoid cache inconsistency. - The
awaitInitialTransfer
parameter causes the first call to methodCacheManager.getCache()
on the joiner node to block and wait until the joining is complete and the cache has finished receiving state from neighboring caches (iffetchInMemoryState
is enabled). This option applies to distributed and replicated caches only and is enabled by default. - The
timeout
parameter specifies the maximum time (in milliseconds) the cache waits for responses from neighboring caches with the requested states. If no response is received within thetimeout
period, the start up process aborts and an exception is thrown. As a result of the failed state transfer, the cache is not available on that instance.
Specify Transport Configuration
<global> <transport clusterName="${NAME}" distributedSyncTimeout="${TIME}" transportClass="${CLASS}" /> </global>
Thetransport
element defines the transport configuration for the cache container as follows:- The
clusterName
parameter specifies the name of the cluster. Nodes can only connect to clusters that share the same name. - The
distributedSyncTimeout
parameter specifies the time to wait to acquire a lock on the distributed lock. This distributed lock ensures that a single cache can transfer state or rehash state at a time. - The
transportClass
parameter specifies a class that represents a network transport for the cache container.