urn:infinispan:config:14.0

infinispan

Defines the configuration for Infinispan, for the cache manager configuration, for the default cache, and for named caches.

jgroups?

Defines JGroups stacks.

Defines JGroups transport stacks.
NameTypeDefaultDescription
transportstringorg.infinispan.remoting.transport.jgroups.JGroupsTransportClass that represents a network transport. Must implement org.infinispan.remoting.transport.Transport.

stack-file*

Defines an individual JGroups stack, pointing to the file containing its definition.
NameTypeDefaultDescription
namestringName of the stack, to be referenced by transport's stack attribute.
pathstringPath of JGroups configuration file containing stack definition.

stack*

NameTypeDefaultDescription
namestringName of the stack, to be referenced by transport's stack attribute.
extendsstringThe base stack to extend.

remote-sites?

Defines the relay configuration.

NameTypeDefaultDescription
default-stackstringDefines the name of the JGroups stack to be used by default when connecting to remote sites.
clusterstringxsiteDefines the default cluster name for remote clusters.

remote-site

NameTypeDefaultDescription
namestringDefines the name of the remote site.
stackstringDefines the name of the JGroups stack to use to connect to the remote site. If unspecified, the default-stack will be used.
clusterstringDefines the name for the underlying group communication cluster. If unspecified, the remote-sites.cluster name will be used.

ASYM_ENCRYPT

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
asym_algorithmstringCipher engine transformation for asymmetric algorithm. Default is RSA
asym_keylengthstringInitial public/private key length. Default is 2048
change_key_on_coord_leavestringChange the secret group key when the coordinator changes. If enabled, this will take place even if change_key_on_leave is disabled.
change_key_on_leavestringWhen a node leaves, change the secret group key, preventing old members from eavesdropping
cipher_pool_sizestringNumber of ciphers in the pool to parallelize encrypt and decrypt requests
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
key_map_max_sizestringMax number of keys in key_map
levelstringlogger level (see javadocs)
policiesstring
providerstringCryptographic Service Provider
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
sym_algorithmstringCipher engine transformation for symmetric algorithm. Default is AES
sym_iv_lengthstringInitialization vector length for symmetric encryption. A value must be specified here if the configured sym_algorithm requires an initialization vector.
sym_keylengthstringInitial key length for matching symmetric algorithm. Default is 128
use_external_key_exchangestringIf true, a separate KeyExchange protocol (somewhere in the stack) is used to fetch the shared secret key. If false, the default (built-in) key exchange protocol will be used.

AUTH

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
auth_classstringThe fully qualified name of the class implementing the AuthToken interface
auth_coordstringDo join or merge responses from the coordinator also need to be authenticated
auth_valuestring
cert_aliasstring
cert_passwordstring
cipher_typestring
client_passwordstring
client_principal_namestring
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
fixed_members_seperatorstring
fixed_members_valuestring
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
keystore_passwordstring
keystore_pathstring
keystore_typestring
levelstringlogger level (see javadocs)
match_ip_addressstring
match_logical_namestring
match_stringstring
policiesstring
service_principal_namestring
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true

BARRIER

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
flush_timeoutstringMax time (in ms) to wait until the threads which passed the barrier before it was closed have completed. If this time elapses, an exception will be thrown and state transfer will fail. 0= wait forever
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
max_close_timestringMax time barrier can be closed. Default is 60000 ms
policiesstring
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true

BATCH

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
flush_intervalstringMax interval (millis) at which the queued messages are sent
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
max_batch_sizestringThe maximum number of messages per batch
policiesstring
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true

BATCH2

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
flush_intervalstringMax interval (millis) at which the queued messages are sent
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
max_batch_sizestringThe maximum number of messages per batch
policiesstring
poll_timeoutstringTime (microseconds) to wait on poll() from the down_queue. A value of <= 0 doesn't wait
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true

BPING

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
async_discoverystringIf true then the discovery is done on a separate timer thread. Should be set to true when discovery is blocking and/or takes more than a few milliseconds
async_discovery_use_separate_thread_per_requeststringIf enabled, use a separate thread for every discovery request. Can be used with or without async_discovery
bind_portstringPort for discovery packets
break_on_coord_rspstringReturn from the discovery phase as soon as we have 1 coordinator response
deststringTarget address for broadcasts. This should be restricted to the local subnet, e.g. 192.168.1.255
discovery_rsp_expiry_timestringExpiry time of discovery responses in ms
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
max_members_in_discovery_requeststringMax size of the member list shipped with a discovery request. If we have more, the mbrs field in the discovery request header is nulled and members return the entire membership, not individual members
max_rank_to_replystringThe max rank of this member to respond to discovery requests, e.g. if max_rank_to_reply=2 in {A,B,C,D,E}, only A (rank 1) and B (rank 2) will reply. A value <= 0 means everybody will reply. This attribute is ignored if TP.use_ip_addrs is false.
num_discovery_runsstringThe number of times a discovery process is executed when finding initial members (https://issues.redhat.com/browse/JGRP-2317)
policiesstring
port_rangestringSends discovery packets to ports 8555 to (8555+port_range)
return_entire_cachestringWhether or not to return the entire logical-physical address cache mappings on a discovery request, or not.
send_cache_on_joinstringWhen a new node joins, and we have a static discovery protocol (TCPPING), then send the contents of the discovery cache to new and existing members if true (and we're the coord). Addresses JGRP-1903
stagger_timeoutstringIf greater than 0, we'll wait a random number of milliseconds in range [0..stagger_timeout] before sending a discovery response. This prevents traffic spikes in large clusters when everyone sends their discovery response at the same time
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
use_disk_cachestringIf a persistent disk cache (PDC) is present, combine the discovery results with the contents of the disk cache before returning the results

CENTRAL_LOCK

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
bypass_bundlingstringbypasses message bundling if set
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
lock_striping_sizestringNumber of locks to be used for lock striping (for synchronized access to the server_lock entries)
num_backupsstringNumber of backups to the coordinator. Server locks get replicated to these nodes as well
policiesstring
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
use_thread_id_for_lock_ownerstringBy default, a lock owner is address:thread-id. If false, we only use the node's address. See https://issues.redhat.com/browse/JGRP-1886 for details

CENTRAL_LOCK2

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
bypass_bundlingstringbypasses message bundling if set
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
lock_reconciliation_timeoutstringMax time (im ms) to wait for lock info responses from members in a lock reconciliation phase
lock_striping_sizestringNumber of locks to be used for lock striping (for synchronized access to the server_lock entries)
policiesstring
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
use_thread_id_for_lock_ownerstringBy default, a lock owner is address:thread-id. If false, we only use the node's address. See https://issues.redhat.com/browse/JGRP-1886 for details

CLEAR_FLAGS

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
oobstringclear OOB flags
policiesstring
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true

COMPRESS

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
compression_levelstringCompression level (from java.util.zip.Deflater) (0=no compression, 1=best speed, 9=best compression). Default is 9
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
min_sizestringMinimal payload size of a message (in bytes) for compression to kick in. Default is 500 bytes
policiesstring
pool_sizestringNumber of inflaters/deflaters for concurrent processing. Default is 2
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true

COUNTER

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
bypass_bundlingstringBypasses message bundling if true
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
num_backupsstringNumber of backup coordinators. Modifications are asynchronously sent to all backup coordinators
policiesstring
reconciliation_timeoutstringNumber of milliseconds to wait for reconciliation responses from all current members
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
timeoutstringRequest timeouts (in ms). If the timeout elapses, a TimeoutException will be thrown

DAISYCHAIN

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
loopbackstringLoop back multicast messages
policiesstring
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true

DELAY

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
constant_delaystringKeep the delay constant. By default delay time randoms between 0 and upper bound
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
in_delaystringUpper bound of number of milliseconds to delay passing a message up the stack (exclusive)
in_delay_nanosstringNumber of nanoseconds to delay passing a message up the stack
levelstringlogger level (see javadocs)
out_delaystringUpper bound number of milliseconds to delay passing a message down the stack (exclusive)
out_delay_nanosstringNumber of nanoseconds to delay passing a message down the stack
policiesstring
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true

DETECT_LOOPBACKS

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
policiesstring
print_to_stdoutstringPrints to stdout
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true

DH_KEY_EXCHANGE

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
policiesstring
secret_key_algorithmstringThe type of secret key to be sent up the stack (converted from DH). Should be the same as the algorithm part of ASYM_ENCRYPT.sym_algorithm if ASYM_ENCRYPT is used
secret_key_lengthstringThe length of the secret key (in bits) to be sent up the stack. AES requires 128 bits. Should be the same as ASYM_ENCRYPT.sym_keylength if ASYM_ENCRYPT is used.
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
timeoutstringMax time (in ms) that a FETCH_SECRET_KEY down event will be ignored (if an existing request is in progress) until a new request for the secret key is sent to the keyserver

DISCARD

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
discard_allstringDrops all messages (up or down) if true
downstring
drop_down_multicastsstringNumber of subsequent multicasts to drop in the down direction
drop_down_unicastsstringNumber of subsequent unicasts to drop in the down direction
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
excludeItselfstringIf discard_all is true, still sends messages to self
guistringuse a GUI or not
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
policiesstring
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
upstring

DISCARD_PAYLOAD

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
duplicatestring
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
policiesstring
seqnostring
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true

DROP

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
policiesstring
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true

DUPL

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
copy_multicast_msgsstringWhether or not to copy multicast messages
copy_unicast_msgsstringWhether or not to copy unicast messages
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
incoming_copiesstringNumber of copies of each incoming message (0=no copies)
levelstringlogger level (see javadocs)
outgoing_copiesstringNumber of copies of each outgoing message (0=no copies)
policiesstring
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true

EXAMPLE

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
policiesstring
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true

FD_ALL

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
intervalstringInterval at which a HEARTBEAT is sent to the cluster
levelstringlogger level (see javadocs)
policiesstring
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
timeoutstringTimeout after which a node is suspected if neither a heartbeat nor data have been received from it
timeout_check_intervalstringInterval at which the HEARTBEAT timeouts are checked
use_time_servicestringUses TimeService to get the current time rather than calling System.nanoTime().

FD_ALL2

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
intervalstringInterval at which a HEARTBEAT is sent to the cluster
levelstringlogger level (see javadocs)
policiesstring
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
timeoutstringTimeout after which a node is suspected if neither a heartbeat nor data have been received from it

FD_ALL3

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
intervalstringInterval at which a HEARTBEAT is sent to the cluster
levelstringlogger level (see javadocs)
policiesstring
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
timeoutstringTimeout after which a node is suspected if neither a heartbeat nor data have been received from it

FD_HOST

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
check_timeoutstringMax time (in ms) that a liveness check for a single host can take
cmdstringThe command used to check a given host for liveness. Example: "ping". If null, InetAddress.isReachable() will be used by default
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
intervalstringThe interval (in ms) at which the hosts are checked for liveness
levelstringlogger level (see javadocs)
policiesstring
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
timeoutstringMax time (in ms) after which a host is suspected if it failed all liveness checks
use_time_servicestringUses TimeService to get the current time rather than System.currentTimeMillis. Might get removed soon, don't use !

FD_SOCK

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
bind_addrstringThe NIC on which the ServerSocket should listen on. The following special values are also recognized: GLOBAL, SITE_LOCAL, LINK_LOCAL and NON_LOOPBACK
cache_max_agestringMax age (in ms) an element marked as removed has to have until it is removed
cache_max_elementsstringMax number of elements in the cache until deleted elements are removed
client_bind_portstringStart port for client socket. Default value of 0 picks a random port
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
external_addrstringUse "external_addr" if you have hosts on different networks, behind firewalls. On each firewall, set up a port forwarding rule (sometimes called "virtual server") to the local IP (e.g. 192.168.1.100) of the host then on each host, set "external_addr" TCP transport parameter to the external (public IP) address of the firewall.
external_portstringUsed to map the internal port (bind_port) to an external port. Only used if > 0
get_cache_timeoutstringTimeout for getting socket cache from coordinator
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
keep_alivestringWhether to use KEEP_ALIVE on the ping socket or not. Default is true
levelstringlogger level (see javadocs)
num_triesstringNumber of attempts coordinator is solicited for socket cache until we give up
policiesstring
port_rangestringNumber of ports to probe for start_port and client_bind_port
sock_conn_timeoutstringMax time in millis to wait for ping Socket.connect() to return
start_portstringStart port for server socket. Default value of 0 picks a random port
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
suspect_msg_intervalstringInterval for broadcasting suspect messages

FD_SOCK2

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
bind_addrstringThe NIC on which the ServerSocket should listen on. The following special values are also recognized: GLOBAL, SITE_LOCAL, LINK_LOCAL and NON_LOOPBACK
client_bind_portstringStart port for client socket. Default value of 0 picks a random port
connect_timeoutstringMax time (ms) to wait for a connect attempt
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
external_addrstringUse "external_addr" if you have hosts on different networks behind firewalls. On each firewall, set up a port forwarding rule to the local IP (e.g. 192.168.1.100) of the host, then on each host, set the "external_addr" TCP transport attribute to the external (public IP) address of the firewall
external_portstringUsed to map the internal port (bind_port) to an external port. Only used if > 0
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
lingerstringSO_LINGER in seconds. Default of -1 disables it
max_portstringThe highest port the FD_SOCK server can listen on. Needed when wrapping around, looking for ports. See https://issues.redhat.com/browse/JGRP-2560 for details.
min_portstringThe lowest port the FD_SOCK server can listen on. Needed when wrapping around, looking for ports. See https://issues.redhat.com/browse/JGRP-2560 for details
offsetstringOffset from the transport's bind port
policiesstring
port_rangestringNumber of ports to probe for finding a free port
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
suspect_msg_intervalstringInterval for broadcasting suspect messages

FILE_PING

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
async_discoverystringIf true then the discovery is done on a separate timer thread. Should be set to true when discovery is blocking and/or takes more than a few milliseconds
async_discovery_use_separate_thread_per_requeststringIf enabled, use a separate thread for every discovery request. Can be used with or without async_discovery
break_on_coord_rspstringReturn from the discovery phase as soon as we have 1 coordinator response
discovery_rsp_expiry_timestringExpiry time of discovery responses in ms
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
info_writer_max_writes_after_viewstringThe max number of times my own information should be written to the storage after a view change
info_writer_sleep_timestringInterval (in ms) at which the info writer should kick in
levelstringlogger level (see javadocs)
locationstringThe absolute path of the shared file
max_members_in_discovery_requeststringMax size of the member list shipped with a discovery request. If we have more, the mbrs field in the discovery request header is nulled and members return the entire membership, not individual members
max_rank_to_replystringThe max rank of this member to respond to discovery requests, e.g. if max_rank_to_reply=2 in {A,B,C,D,E}, only A (rank 1) and B (rank 2) will reply. A value <= 0 means everybody will reply. This attribute is ignored if TP.use_ip_addrs is false.
num_discovery_runsstringThe number of times a discovery process is executed when finding initial members (https://issues.redhat.com/browse/JGRP-2317)
policiesstring
register_shutdown_hookstringIf set, a shutdown hook is registered with the JVM to remove the local address from the store. Default is true
remove_all_data_on_view_changestringIf true, on a view change, the new coordinator removes all data except its own
remove_old_coords_on_view_changestringIf true, on a view change, the new coordinator removes files from old coordinators
return_entire_cachestringWhether or not to return the entire logical-physical address cache mappings on a discovery request, or not.
send_cache_on_joinstringWhen a new node joins, and we have a static discovery protocol (TCPPING), then send the contents of the discovery cache to new and existing members if true (and we're the coord). Addresses JGRP-1903
stagger_timeoutstringIf greater than 0, we'll wait a random number of milliseconds in range [0..stagger_timeout] before sending a discovery response. This prevents traffic spikes in large clusters when everyone sends their discovery response at the same time
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
update_store_on_view_changestringChange the backend store when the view changes. If off, then the file is only changed on joins, but not on leaves. Enabling this will increase traffic to the backend store.
use_disk_cachestringIf a persistent disk cache (PDC) is present, combine the discovery results with the contents of the disk cache before returning the results
write_data_on_findstringWhen a non-initial discovery is run, and InfoWriter is not running, write the data to disk (if true). JIRA: https://issues.redhat.com/browse/JGRP-2288

FORK

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
configstringPoints to an XML file defining the fork-stacks, which will be created at initialization. Ignored if null
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
policiesstring
process_state_eventsstringIf enabled, state transfer events will be processed, else they will be passed up
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true

fork-stacks

FRAG

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
frag_sizestringThe max number of bytes in a message. Larger messages will be fragmented
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
policiesstring
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true

FRAG2

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
frag_sizestringThe max number of bytes in a message. Larger messages will be fragmented
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
policiesstring
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true

FRAG3

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
frag_sizestringThe max number of bytes in a message. Larger messages will be fragmented
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
policiesstring
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true

FRAG4

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
frag_sizestringThe max number of bytes in a message. Larger messages will be fragmented
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
policiesstring
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true

Fragmentation

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
frag_sizestringThe max number of bytes in a message. Larger messages will be fragmented
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
policiesstring
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true

HDRS

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
policiesstring
print_downstringEnables printing of down messages
print_upstringEnables printing of up (received) messages
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true

INJECT_VIEW

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
policiesstring
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true

JDBC_PING

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
async_discoverystringIf true then the discovery is done on a separate timer thread. Should be set to true when discovery is blocking and/or takes more than a few milliseconds
async_discovery_use_separate_thread_per_requeststringIf enabled, use a separate thread for every discovery request. Can be used with or without async_discovery
break_on_coord_rspstringReturn from the discovery phase as soon as we have 1 coordinator response
clear_sqlstringSQL to clear the table
connection_driverstringThe JDBC connection driver name
connection_passwordstringThe JDBC connection password
connection_urlstringThe JDBC connection URL
connection_usernamestringThe JDBC connection username
contains_sqlstringFinds a given entry by its address and cluster name, used to implement a contains()
datasource_jndi_namestringTo use a DataSource registered in JNDI, specify the JNDI name here. This is an alternative to all connection_* configuration options: if this property is not empty, then all connection relatedproperties must be empty.
delete_single_sqlstringSQL used to delete a row. Customizable, but keep the order of parameters and pick compatible types: 1)Own Address, as String 2)Cluster name, as String
discovery_rsp_expiry_timestringExpiry time of discovery responses in ms
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
info_writer_max_writes_after_viewstringThe max number of times my own information should be written to the storage after a view change
info_writer_sleep_timestringInterval (in ms) at which the info writer should kick in
initialize_sqlstringIf not empty, this SQL statement will be performed at startup.Customize it to create the needed table on those databases which permit table creation attempt without losing data, such as PostgreSQL and MySQL (using IF NOT EXISTS). To allow for creation attempts, errors performing this statement will be loggedbut not considered fatal. To avoid any DDL operation, set this to an empty string.
insert_single_sqlstringSQL used to insert a new row. Customizable, but keep the order of parameters and pick compatible types: 1)Own Address, as String 2)Cluster name, as String 3)Serialized PingData as byte[]
levelstringlogger level (see javadocs)
locationstringThe absolute path of the shared file
max_members_in_discovery_requeststringMax size of the member list shipped with a discovery request. If we have more, the mbrs field in the discovery request header is nulled and members return the entire membership, not individual members
max_rank_to_replystringThe max rank of this member to respond to discovery requests, e.g. if max_rank_to_reply=2 in {A,B,C,D,E}, only A (rank 1) and B (rank 2) will reply. A value <= 0 means everybody will reply. This attribute is ignored if TP.use_ip_addrs is false.
num_discovery_runsstringThe number of times a discovery process is executed when finding initial members (https://issues.redhat.com/browse/JGRP-2317)
policiesstring
register_shutdown_hookstringIf set, a shutdown hook is registered with the JVM to remove the local address from the store. Default is true
remove_all_data_on_view_changestringIf true, on a view change, the new coordinator removes all data except its own
remove_old_coords_on_view_changestringIf true, on a view change, the new coordinator removes files from old coordinators
return_entire_cachestringWhether or not to return the entire logical-physical address cache mappings on a discovery request, or not.
select_all_pingdata_sqlstringSQL used to fetch all node's PingData. Customizable, but keep the order of parameters and pick compatible types: only one parameter needed, String compatible, representing the Cluster name. Must return a byte[], the Serialized PingData as it was stored by the insert_single_sql statement. Must select primary keys subsequently for cleanup to work properly
send_cache_on_joinstringWhen a new node joins, and we have a static discovery protocol (TCPPING), then send the contents of the discovery cache to new and existing members if true (and we're the coord). Addresses JGRP-1903
stagger_timeoutstringIf greater than 0, we'll wait a random number of milliseconds in range [0..stagger_timeout] before sending a discovery response. This prevents traffic spikes in large clusters when everyone sends their discovery response at the same time
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
update_store_on_view_changestringChange the backend store when the view changes. If off, then the file is only changed on joins, but not on leaves. Enabling this will increase traffic to the backend store.
use_disk_cachestringIf a persistent disk cache (PDC) is present, combine the discovery results with the contents of the disk cache before returning the results
write_data_on_findstringWhen a non-initial discovery is run, and InfoWriter is not running, write the data to disk (if true). JIRA: https://issues.redhat.com/browse/JGRP-2288

LOCAL_PING

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
async_discoverystringIf true then the discovery is done on a separate timer thread. Should be set to true when discovery is blocking and/or takes more than a few milliseconds
async_discovery_use_separate_thread_per_requeststringIf enabled, use a separate thread for every discovery request. Can be used with or without async_discovery
break_on_coord_rspstringReturn from the discovery phase as soon as we have 1 coordinator response
discovery_rsp_expiry_timestringExpiry time of discovery responses in ms
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
max_members_in_discovery_requeststringMax size of the member list shipped with a discovery request. If we have more, the mbrs field in the discovery request header is nulled and members return the entire membership, not individual members
max_rank_to_replystringThe max rank of this member to respond to discovery requests, e.g. if max_rank_to_reply=2 in {A,B,C,D,E}, only A (rank 1) and B (rank 2) will reply. A value <= 0 means everybody will reply. This attribute is ignored if TP.use_ip_addrs is false.
num_discovery_runsstringThe number of times a discovery process is executed when finding initial members (https://issues.redhat.com/browse/JGRP-2317)
policiesstring
return_entire_cachestringWhether or not to return the entire logical-physical address cache mappings on a discovery request, or not.
send_cache_on_joinstringWhen a new node joins, and we have a static discovery protocol (TCPPING), then send the contents of the discovery cache to new and existing members if true (and we're the coord). Addresses JGRP-1903
stagger_timeoutstringIf greater than 0, we'll wait a random number of milliseconds in range [0..stagger_timeout] before sending a discovery response. This prevents traffic spikes in large clusters when everyone sends their discovery response at the same time
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
use_disk_cachestringIf a persistent disk cache (PDC) is present, combine the discovery results with the contents of the disk cache before returning the results

MAKE_BATCH

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
multicastsstringhandle multicast messages
policiesstring
skip_oobstringDo not add OOB messages to a batch if true
sleep_timestringTime to sleep (in ms) from the reception of the first message to sending a batch up
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
unicastsstringhandle unicast messages

MERGE3

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
check_intervalstringInterval (in ms) after which we check for view inconsistencies
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
max_intervalstringInterval (in milliseconds) when the next info message will be sent. A random value is picked from range [1..max_interval]
max_participants_in_mergestringThe max number of merge participants to be involved in a merge. 0 sets this to unlimited.
min_intervalstringMinimum time in ms before sending an info message
policiesstring
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true

MFC

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
max_block_timestringMax time (in ms) to block
max_creditsstringMax number of bytes to send per receiver until an ack must be received to proceed
min_creditsstringComputed as max_credits x min_theshold unless explicitly set
min_thresholdstringThe threshold (as a percentage of max_credits) at which a receiver sends more credits to a sender. Example: if max_credits is 1'000'000, and min_threshold 0.25, then we send ca. 250'000 credits to P once we've got only 250'000 credits left for P (we've received 750'000 bytes from P)
policiesstring
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true

MFC_NB

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
max_block_timestringMax time (in ms) to block
max_creditsstringMax number of bytes to send per receiver until an ack must be received to proceed
max_queue_sizestringMax number of bytes of all queued messages for a given destination. If a given destination has no credits left and the message cannot be added to the queue because it is full, then the sender thread will be blocked until there is again space available in the queue, or the protocol is stopped.
min_creditsstringComputed as max_credits x min_theshold unless explicitly set
min_thresholdstringThe threshold (as a percentage of max_credits) at which a receiver sends more credits to a sender. Example: if max_credits is 1'000'000, and min_threshold 0.25, then we send ca. 250'000 credits to P once we've got only 250'000 credits left for P (we've received 750'000 bytes from P)
policiesstring
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true

MPING

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
async_discoverystringIf true then the discovery is done on a separate timer thread. Should be set to true when discovery is blocking and/or takes more than a few milliseconds
async_discovery_use_separate_thread_per_requeststringIf enabled, use a separate thread for every discovery request. Can be used with or without async_discovery
bind_addrstringBind address for multicast socket. The following special values are also recognized: GLOBAL, SITE_LOCAL, LINK_LOCAL and NON_LOOPBACK
bind_interfacestringThe interface (NIC) which should be used by this transport
break_on_coord_rspstringReturn from the discovery phase as soon as we have 1 coordinator response
discovery_rsp_expiry_timestringExpiry time of discovery responses in ms
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
ip_ttlstringTime to live for discovery packets. Default is 8
levelstringlogger level (see javadocs)
max_members_in_discovery_requeststringMax size of the member list shipped with a discovery request. If we have more, the mbrs field in the discovery request header is nulled and members return the entire membership, not individual members
max_rank_to_replystringThe max rank of this member to respond to discovery requests, e.g. if max_rank_to_reply=2 in {A,B,C,D,E}, only A (rank 1) and B (rank 2) will reply. A value <= 0 means everybody will reply. This attribute is ignored if TP.use_ip_addrs is false.
mcast_addrstringMulticast address to be used for discovery
mcast_portstringMulticast port for discovery packets. Default is 7555
num_discovery_runsstringThe number of times a discovery process is executed when finding initial members (https://issues.redhat.com/browse/JGRP-2317)
policiesstring
receive_interfacesstringList of interfaces to receive multicasts on
receive_on_all_interfacesstringIf true, the transport should use all available interfaces to receive multicast messages
return_entire_cachestringWhether or not to return the entire logical-physical address cache mappings on a discovery request, or not.
send_cache_on_joinstringWhen a new node joins, and we have a static discovery protocol (TCPPING), then send the contents of the discovery cache to new and existing members if true (and we're the coord). Addresses JGRP-1903
send_interfacesstringList of interfaces to send multicasts on
send_on_all_interfacesstringWhether send messages are sent on all interfaces. Default is false
stagger_timeoutstringIf greater than 0, we'll wait a random number of milliseconds in range [0..stagger_timeout] before sending a discovery response. This prevents traffic spikes in large clusters when everyone sends their discovery response at the same time
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
use_disk_cachestringIf a persistent disk cache (PDC) is present, combine the discovery results with the contents of the disk cache before returning the results

PDC

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
cache_dirstringThe absolute path of the directory for the disk cache. The mappings will be stored as individual files in this directory
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
policiesstring
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true

PERF

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
avg_sizestringNumber of samples to maintain for rolling average
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
policiesstring
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true

PING

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
async_discoverystringIf true then the discovery is done on a separate timer thread. Should be set to true when discovery is blocking and/or takes more than a few milliseconds
async_discovery_use_separate_thread_per_requeststringIf enabled, use a separate thread for every discovery request. Can be used with or without async_discovery
break_on_coord_rspstringReturn from the discovery phase as soon as we have 1 coordinator response
discovery_rsp_expiry_timestringExpiry time of discovery responses in ms
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
max_members_in_discovery_requeststringMax size of the member list shipped with a discovery request. If we have more, the mbrs field in the discovery request header is nulled and members return the entire membership, not individual members
max_rank_to_replystringThe max rank of this member to respond to discovery requests, e.g. if max_rank_to_reply=2 in {A,B,C,D,E}, only A (rank 1) and B (rank 2) will reply. A value <= 0 means everybody will reply. This attribute is ignored if TP.use_ip_addrs is false.
num_discovery_runsstringThe number of times a discovery process is executed when finding initial members (https://issues.redhat.com/browse/JGRP-2317)
policiesstring
return_entire_cachestringWhether or not to return the entire logical-physical address cache mappings on a discovery request, or not.
send_cache_on_joinstringWhen a new node joins, and we have a static discovery protocol (TCPPING), then send the contents of the discovery cache to new and existing members if true (and we're the coord). Addresses JGRP-1903
stagger_timeoutstringIf greater than 0, we'll wait a random number of milliseconds in range [0..stagger_timeout] before sending a discovery response. This prevents traffic spikes in large clusters when everyone sends their discovery response at the same time
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
use_disk_cachestringIf a persistent disk cache (PDC) is present, combine the discovery results with the contents of the disk cache before returning the results

RACKSPACE_PING

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
apiKeystringRackspace API access key
async_discoverystringIf true then the discovery is done on a separate timer thread. Should be set to true when discovery is blocking and/or takes more than a few milliseconds
async_discovery_use_separate_thread_per_requeststringIf enabled, use a separate thread for every discovery request. Can be used with or without async_discovery
break_on_coord_rspstringReturn from the discovery phase as soon as we have 1 coordinator response
containerstringName of the root container
discovery_rsp_expiry_timestringExpiry time of discovery responses in ms
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
info_writer_max_writes_after_viewstringThe max number of times my own information should be written to the storage after a view change
info_writer_sleep_timestringInterval (in ms) at which the info writer should kick in
levelstringlogger level (see javadocs)
locationstringThe absolute path of the shared file
max_members_in_discovery_requeststringMax size of the member list shipped with a discovery request. If we have more, the mbrs field in the discovery request header is nulled and members return the entire membership, not individual members
max_rank_to_replystringThe max rank of this member to respond to discovery requests, e.g. if max_rank_to_reply=2 in {A,B,C,D,E}, only A (rank 1) and B (rank 2) will reply. A value <= 0 means everybody will reply. This attribute is ignored if TP.use_ip_addrs is false.
num_discovery_runsstringThe number of times a discovery process is executed when finding initial members (https://issues.redhat.com/browse/JGRP-2317)
policiesstring
regionstringRackspace region, either UK or US
register_shutdown_hookstringIf set, a shutdown hook is registered with the JVM to remove the local address from the store. Default is true
remove_all_data_on_view_changestringIf true, on a view change, the new coordinator removes all data except its own
remove_old_coords_on_view_changestringIf true, on a view change, the new coordinator removes files from old coordinators
return_entire_cachestringWhether or not to return the entire logical-physical address cache mappings on a discovery request, or not.
send_cache_on_joinstringWhen a new node joins, and we have a static discovery protocol (TCPPING), then send the contents of the discovery cache to new and existing members if true (and we're the coord). Addresses JGRP-1903
stagger_timeoutstringIf greater than 0, we'll wait a random number of milliseconds in range [0..stagger_timeout] before sending a discovery response. This prevents traffic spikes in large clusters when everyone sends their discovery response at the same time
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
update_store_on_view_changestringChange the backend store when the view changes. If off, then the file is only changed on joins, but not on leaves. Enabling this will increase traffic to the backend store.
use_disk_cachestringIf a persistent disk cache (PDC) is present, combine the discovery results with the contents of the disk cache before returning the results
usernamestringRackspace username
write_data_on_findstringWhen a non-initial discovery is run, and InfoWriter is not running, write the data to disk (if true). JIRA: https://issues.redhat.com/browse/JGRP-2288

RATE_LIMITER

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
max_bytesstringMax number of bytes to be sent in time_period ms. Blocks the sender if exceeded until a new time period has started
policiesstring
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
time_periodstringNumber of milliseconds during which max_bytes bytes can be sent

RED

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
enabledstringIf false, all messages are passed down. Will be set to false if the bundler returns a queue size of -1
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
max_thresholdstringThe max threshold (percentage between min_threshold and 1.0) above which all messages are dropped
min_thresholdstringThe min threshold (percentage between 0 and 1.0) below which no message is dropped
policiesstring
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
weight_factorstringThe weight used to compute the average queue size. The higher the value is, the less the current queue size is taken into account. E.g. with 2, 25% of the current queue size and 75% of the old average is taken to compute the new average. In other words: with a high value, the average will take longer to reflect the current queue size.

REVERSE

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
policiesstring
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true

RSVP

NameTypeDefaultDescription
ack_on_deliverystringWhen true, we pass the message up to the application and only then send an ack. When false, we send an ack first and only then pass the message up to the application.
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
policiesstring
resend_intervalstringInterval (in milliseconds) at which we resend the RSVP request. Needs to be < timeout. 0 disables it.
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
throw_exception_on_timeoutstringWhether an exception should be thrown when the timeout kicks in, and we haven't yet received all acks. An exception would be thrown all the way up to JChannel.send(). If we use RSVP_NB, this will be ignored.
timeoutstringMax time in milliseconds to block for an RSVP'ed message (0 blocks forever).

SEQUENCER

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
delivery_table_max_sizestringSize of the set to store received seqnos (for duplicate checking)
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
flush_forward_tablestringIf true, all messages in the forward-table are sent to the new coord, else thye're dropped (https://issues.redhat.com/browse/JGRP-2268)
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
policiesstring
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
thresholdstringNumber of acks needed before going from ack-mode to normal mode. 0 disables this, which means that ack-mode is always on

SEQUENCER2

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
policiesstring
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true

SERIALIZE

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
policiesstring
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true

SHARED_LOOPBACK

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
bind_addrstringThe bind address which should be used by this transport. The following special values are also recognized: GLOBAL, SITE_LOCAL, LINK_LOCAL, NON_LOOPBACK, match-interface, match-host, match-address
bind_portstringThe port to which the transport binds. Default of 0 binds to any (ephemeral) port. See also port_range
bundler.capacitystringThe max number of elements in a bundler if the bundler supports size limitations
bundler.flush_intervalstringMax interval (millis) at which the queued messages are sent
bundler.max_batch_sizestringThe maximum number of messages per batch
bundler.max_sizestringMaximum number of bytes for messages to be queued until they are sent
bundler.max_threadsstringMax number of threads in thread pool
bundler.num_spinsstringNumber of spins before a real lock is acquired
bundler.poll_timeoutstringTime (microseconds) to wait on poll() from the down_queue. A value of <= 0 doesn't wait
bundler.remove_queue_sizestringThe capacity of the remove queue
bundler.wait_strategystringThe wait strategy: spin, yield, park, spin-park, spin-yield
bundler_typestringThe type of bundler used ("ring-buffer", "transfer-queue" (default), "sender-sends" or "no-bundler") or the fully qualified classname of a Bundler implementation
diag.bind_addrstringBind address for diagnostic probing, to bind the TCP socket. Used when enable_tcp is true
diag.bind_interfacesstringComma delimited list of interfaces (IP addrs or interface names) that the multicast socket should bind to
diag.enable_tcpstringUse a TCP socket to listen for probe requests (ignored if diag.enabled is false)
diag.enable_udpstringUse a multicast socket to listen for probe requests (ignored if diag.enabled is false)
diag.enabledstringSwitch to enable diagnostic probing
diag.mcast_addrstringMulticast address for diagnostic probing (UDP MulticastSocket). Used when enable_udp is true
diag.passcodestringAuthorization passcode for diagnostics. If specified every probe query will be authorized
diag.portstringPort for diagnostic probing. Default is 7500
diag.port_rangestringThe number of ports to be probed for an available port (TCP)
diag.ttlstringTTL of the diagnostics multicast socket
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
external_addrstringUse "external_addr" if you have hosts on different networks, behind firewalls. On each firewall, set up a port forwarding rule (sometimes called "virtual server") to the local IP (e.g. 192.168.1.100) of the host then on each host, set "external_addr" TCP transport parameter to the external (public IP) address of the firewall.
external_portstringUsed to map the internal port (bind_port) to an external port. Only used if > 0
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
local_transport_classstringThe fully qualified name of a class implementing LocalTransport
log_discard_msgsstringwhether or not warnings about messages from different groups are logged
log_discard_msgs_versionstringwhether or not warnings about messages from members with a different version are discarded
logical_addr_cache_expirationstringTime (in ms) after which entries in the logical address cache marked as removable can be removed. 0 never removes any entries (not recommended)
logical_addr_cache_max_sizestringMax number of elements in the logical address cache before eviction starts
logical_addr_cache_reaper_intervalstringInterval (in ms) at which the reaper task scans logical_addr_cache and removes entries marked as removable. 0 disables reaping.
loopback_copystringWhether or not to make a copy of a message before looping it back up. Don't use this; might get removed without warning
loopback_separate_threadstringLoop back the message on a separate thread or use the current thread. Don't use this; might get removed without warning
message_processing_policystringThe fully qualified name of a class implementing MessageProcessingPolicy
msg_factory_classstringThe fully qualified name of a MessageFactory implementation
policiesstring
port_rangestringThe range of valid ports: [bind_port .. bind_port+port_range ]. 0 only binds to bind_port and fails if taken
receive_interfacesstringComma delimited list of interfaces (IP addresses or interface names) to receive multicasts on
receive_on_all_interfacesstringIf true, the transport should use all available interfaces to receive multicast messages
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
suppress_time_different_cluster_warningsstringTime during which identical warnings about messages from a member from a different cluster will be suppressed. 0 disables this (every warning will be logged). Setting the log level to ERROR also disables this.
suppress_time_different_version_warningsstringTime during which identical warnings about messages from a member with a different version will be suppressed. 0 disables this (every warning will be logged). Setting the log level to ERROR also disables this.
thread_naming_patternstringThread naming pattern for threads in this channel. Valid values are "pcl": "p": includes the thread name, e.g. "Incoming thread-1", "UDP ucast receiver", "c": includes the cluster name, e.g. "MyCluster", "l": includes the local address of the current member, e.g. "192.168.5.1:5678"
thread_pool.deltastringAdded to the view size when the pool is increased dynamically
thread_pool.enabledstringWhether or not the thread pool is enabled. If false, tasks will be run on the caller's thread
thread_pool.increase_max_size_dynamicallystringIncreases max_threads by the view size + delta if enabled (https://issues.redhat.com/browse/JGRP-2655)
thread_pool.keep_alive_timestringTimeout (ms) to remove idle threads from the pool
thread_pool.max_threadsstringMaximum thread pool size for the thread pool
thread_pool.min_threadsstringMinimum thread pool size for the thread pool
thread_pool.rejection_policystringThe rejection policy to be used in the thread pool (abort, discard, run, custom etc. See Util.parseRejectionPolicy() for details
thread_pool.thread_dump_pathstringPath to which the thread dump will be written. Ignored if null
thread_pool.thread_dumps_thresholdstringThe number of times a thread pool needs to be full before a thread dump is logged
time_service_intervalstringInterval (in ms) at which the time service updates its timestamp. 0 disables the time service
use_virtual_threadsstringIf true, create virtual threads, otherwise create native threads
who_has_cache_timeoutstringTimeout (in ms) to determine how long to wait until a request to fetch the physical address for a given logical address will be sent again. Subsequent requests for the same physical address will therefore be spaced at least who_has_cache_timeout ms apart

SHARED_LOOPBACK_PING

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
async_discoverystringIf true then the discovery is done on a separate timer thread. Should be set to true when discovery is blocking and/or takes more than a few milliseconds
async_discovery_use_separate_thread_per_requeststringIf enabled, use a separate thread for every discovery request. Can be used with or without async_discovery
break_on_coord_rspstringReturn from the discovery phase as soon as we have 1 coordinator response
discovery_rsp_expiry_timestringExpiry time of discovery responses in ms
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
max_members_in_discovery_requeststringMax size of the member list shipped with a discovery request. If we have more, the mbrs field in the discovery request header is nulled and members return the entire membership, not individual members
max_rank_to_replystringThe max rank of this member to respond to discovery requests, e.g. if max_rank_to_reply=2 in {A,B,C,D,E}, only A (rank 1) and B (rank 2) will reply. A value <= 0 means everybody will reply. This attribute is ignored if TP.use_ip_addrs is false.
num_discovery_runsstringThe number of times a discovery process is executed when finding initial members (https://issues.redhat.com/browse/JGRP-2317)
policiesstring
return_entire_cachestringWhether or not to return the entire logical-physical address cache mappings on a discovery request, or not.
send_cache_on_joinstringWhen a new node joins, and we have a static discovery protocol (TCPPING), then send the contents of the discovery cache to new and existing members if true (and we're the coord). Addresses JGRP-1903
stagger_timeoutstringIf greater than 0, we'll wait a random number of milliseconds in range [0..stagger_timeout] before sending a discovery response. This prevents traffic spikes in large clusters when everyone sends their discovery response at the same time
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
use_disk_cachestringIf a persistent disk cache (PDC) is present, combine the discovery results with the contents of the disk cache before returning the results

SHUFFLE

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
downstringReorder down messages and message batches
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
max_sizestringmax number of messages before we reorder queued messages and send them up
max_timestringmax time (in millis) before we pass the reordered messages up or down
policiesstring
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
upstringReorder up messages and message batches

SIZE

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
min_sizestring
policiesstring
print_msgstring
raw_bufferstring
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true

SNIFF

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
downstringPrint sent messages
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
policiesstring
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
upstringPrint received messages

SOS

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
cmdstringThe attributes to be fetched. In probe format ('jmx' or 'op' command)
configstringThe configuration file containing all protocols and attributes to be dumped
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
filenamestringFile to which the periodic data is written
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
intervalstringInterval in ms at which the attributes are fetched and written to the file
levelstringlogger level (see javadocs)
policiesstring
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true

SSL_KEY_EXCHANGE

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
bind_addrstringBind address for the server or client socket. The following special values are also recognized: GLOBAL, SITE_LOCAL, LINK_LOCAL and NON_LOOPBACK
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
keystore_namestringLocation of the keystore
keystore_passwordstringPassword to access the keystore
keystore_typestringThe type of the keystore. Types are listed in http://docs.oracle.com/javase/8/docs/technotes/tools/unix/keytool.html
levelstringlogger level (see javadocs)
policiesstring
portstringThe port at which the key server is listening. If the port is not available, the next port will be probed, up to port+port_range. Used by the key server (server) to create an SSLServerSocket and by clients to connect to the key server.
port_rangestringThe port range to probe
reload_thresholdstringMinimum time (in ms) before reloading the keystore and truststore from disk.
require_client_authenticationstringIf enabled, clients are authenticated as well (not just the server). Set to true to prevent rogue clients to fetch the secret group key (e.g. via man-in-the-middle attacks)
secret_key_algorithmstringThe type of secret key to be sent up the stack (converted from DH). Should be the same as the algorithm part of ASYM_ENCRYPT.sym_algorithm if ASYM_ENCRYPT is used
session_verifier_argstringThe argument to the session verifier
session_verifier_classstringThe fully qualified name of a class implementing SessionVerifier
socket_timeoutstringTimeout (in ms) for a socket read. This applies for example to the initial SSL handshake, e.g. if the client connects to a non-JGroups service accidentally running on the same port
ssl_protocolstringThe SSL protocol to use. Defaults to TLS
ssl_providerstringThe SSL security provider. Defaults to null, which will use the default JDK provider.
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
truststore_namestringLocation of the truststore. Defaults to null, which will use the keystore as a truststore.
truststore_passwordstringPassword to access the truststore
truststore_typestringThe type of the truststore. Types are listed in http://docs.oracle.com/javase/8/docs/technotes/tools/unix/keytool.html

STATS

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
policiesstring
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true

STOMP

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
bind_addrstringThe bind address which should be used by the server socket. The following special values are also recognized: GLOBAL, SITE_LOCAL, LINK_LOCAL and NON_LOOPBACK
endpoint_addrstringIf set, then endpoint will be set to this address
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
exact_destination_matchstringIf set to false, then a destination of /a/b match /a/b/c, a/b/d, a/b/c/d etc
forward_non_client_generated_msgsstringForward received messages which don't have a StompHeader to clients
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
policiesstring
portstringPort on which the STOMP protocol listens for requests
send_infostringIf true, information such as a list of endpoints, or views, will be sent to all clients (via the INFO command). This allows for example intelligent clients to connect to a different server should a connection be closed.
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true

SWIFT_PING

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
async_discoverystringIf true then the discovery is done on a separate timer thread. Should be set to true when discovery is blocking and/or takes more than a few milliseconds
async_discovery_use_separate_thread_per_requeststringIf enabled, use a separate thread for every discovery request. Can be used with or without async_discovery
auth_typestringAuthentication type
auth_urlstringAuthentication url
break_on_coord_rspstringReturn from the discovery phase as soon as we have 1 coordinator response
containerstringName of the root container
discovery_rsp_expiry_timestringExpiry time of discovery responses in ms
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
info_writer_max_writes_after_viewstringThe max number of times my own information should be written to the storage after a view change
info_writer_sleep_timestringInterval (in ms) at which the info writer should kick in
levelstringlogger level (see javadocs)
locationstringThe absolute path of the shared file
max_members_in_discovery_requeststringMax size of the member list shipped with a discovery request. If we have more, the mbrs field in the discovery request header is nulled and members return the entire membership, not individual members
max_rank_to_replystringThe max rank of this member to respond to discovery requests, e.g. if max_rank_to_reply=2 in {A,B,C,D,E}, only A (rank 1) and B (rank 2) will reply. A value <= 0 means everybody will reply. This attribute is ignored if TP.use_ip_addrs is false.
num_discovery_runsstringThe number of times a discovery process is executed when finding initial members (https://issues.redhat.com/browse/JGRP-2317)
passwordstringPassword
policiesstring
register_shutdown_hookstringIf set, a shutdown hook is registered with the JVM to remove the local address from the store. Default is true
remove_all_data_on_view_changestringIf true, on a view change, the new coordinator removes all data except its own
remove_old_coords_on_view_changestringIf true, on a view change, the new coordinator removes files from old coordinators
return_entire_cachestringWhether or not to return the entire logical-physical address cache mappings on a discovery request, or not.
send_cache_on_joinstringWhen a new node joins, and we have a static discovery protocol (TCPPING), then send the contents of the discovery cache to new and existing members if true (and we're the coord). Addresses JGRP-1903
stagger_timeoutstringIf greater than 0, we'll wait a random number of milliseconds in range [0..stagger_timeout] before sending a discovery response. This prevents traffic spikes in large clusters when everyone sends their discovery response at the same time
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
tenantstringOpenstack Keystone tenant name
update_store_on_view_changestringChange the backend store when the view changes. If off, then the file is only changed on joins, but not on leaves. Enabling this will increase traffic to the backend store.
use_disk_cachestringIf a persistent disk cache (PDC) is present, combine the discovery results with the contents of the disk cache before returning the results
usernamestringUsername
write_data_on_findstringWhen a non-initial discovery is run, and InfoWriter is not running, write the data to disk (if true). JIRA: https://issues.redhat.com/browse/JGRP-2288

SYM_ENCRYPT

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
aliasstringAlias used for recovering the key. Change the default
asym_algorithmstringCipher engine transformation for asymmetric algorithm. Default is RSA
asym_keylengthstringInitial public/private key length. Default is 2048
cipher_pool_sizestringNumber of ciphers in the pool to parallelize encrypt and decrypt requests
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
key_map_max_sizestringMax number of keys in key_map
key_passwordstringPassword for recovering the key. Change the default
keystore_namestringFile on classpath that contains keystore repository
keystore_typestringThe type of the keystore. Types are listed in http://docs.oracle.com/javase/8/docs/technotes/tools/unix/keytool.html
levelstringlogger level (see javadocs)
policiesstring
providerstringCryptographic Service Provider
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
store_passwordstringPassword used to check the integrity/unlock the keystore. Change the default
sym_algorithmstringCipher engine transformation for symmetric algorithm. Default is AES
sym_iv_lengthstringInitialization vector length for symmetric encryption. A value must be specified here if the configured sym_algorithm requires an initialization vector.
sym_keylengthstringInitial key length for matching symmetric algorithm. Default is 128

SimpleTCP

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
bind_addrstringThe bind address which should be used by this transport. The following special values are also recognized: GLOBAL, SITE_LOCAL, LINK_LOCAL, NON_LOOPBACK, match-interface, match-host, match-address
bind_portstringThe port to which the transport binds. Default of 0 binds to any (ephemeral) port. See also port_range
buffered_input_stream_sizestringSize of the buffer of the BufferedInputStream in TcpConnection. A read always tries to read ahead as much data as possible into the buffer. 0: default size
buffered_output_stream_sizestringSize of the buffer of the BufferedOutputStream in TcpConnection. Smaller messages are buffered until this size is exceeded or flush() is called. Bigger messages are sent immediately. 0: default size
bundler.capacitystringThe max number of elements in a bundler if the bundler supports size limitations
bundler.flush_intervalstringMax interval (millis) at which the queued messages are sent
bundler.max_batch_sizestringThe maximum number of messages per batch
bundler.max_sizestringMaximum number of bytes for messages to be queued until they are sent
bundler.max_threadsstringMax number of threads in thread pool
bundler.num_spinsstringNumber of spins before a real lock is acquired
bundler.poll_timeoutstringTime (microseconds) to wait on poll() from the down_queue. A value of <= 0 doesn't wait
bundler.remove_queue_sizestringThe capacity of the remove queue
bundler.wait_strategystringThe wait strategy: spin, yield, park, spin-park, spin-yield
bundler_typestringThe type of bundler used ("ring-buffer", "transfer-queue" (default), "sender-sends" or "no-bundler") or the fully qualified classname of a Bundler implementation
diag.bind_addrstringBind address for diagnostic probing, to bind the TCP socket. Used when enable_tcp is true
diag.bind_interfacesstringComma delimited list of interfaces (IP addrs or interface names) that the multicast socket should bind to
diag.enable_tcpstringUse a TCP socket to listen for probe requests (ignored if diag.enabled is false)
diag.enable_udpstringUse a multicast socket to listen for probe requests (ignored if diag.enabled is false)
diag.enabledstringSwitch to enable diagnostic probing
diag.mcast_addrstringMulticast address for diagnostic probing (UDP MulticastSocket). Used when enable_udp is true
diag.passcodestringAuthorization passcode for diagnostics. If specified every probe query will be authorized
diag.portstringPort for diagnostic probing. Default is 7500
diag.port_rangestringThe number of ports to be probed for an available port (TCP)
diag.ttlstringTTL of the diagnostics multicast socket
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
external_addrstringUse "external_addr" if you have hosts on different networks, behind firewalls. On each firewall, set up a port forwarding rule (sometimes called "virtual server") to the local IP (e.g. 192.168.1.100) of the host then on each host, set "external_addr" TCP transport parameter to the external (public IP) address of the firewall.
external_portstringUsed to map the internal port (bind_port) to an external port. Only used if > 0
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
local_transport_classstringThe fully qualified name of a class implementing LocalTransport
log_discard_msgsstringwhether or not warnings about messages from different groups are logged
log_discard_msgs_versionstringwhether or not warnings about messages from members with a different version are discarded
logical_addr_cache_expirationstringTime (in ms) after which entries in the logical address cache marked as removable can be removed. 0 never removes any entries (not recommended)
logical_addr_cache_max_sizestringMax number of elements in the logical address cache before eviction starts
logical_addr_cache_reaper_intervalstringInterval (in ms) at which the reaper task scans logical_addr_cache and removes entries marked as removable. 0 disables reaping.
loopback_copystringWhether or not to make a copy of a message before looping it back up. Don't use this; might get removed without warning
loopback_separate_threadstringLoop back the message on a separate thread or use the current thread. Don't use this; might get removed without warning
message_processing_policystringThe fully qualified name of a class implementing MessageProcessingPolicy
msg_factory_classstringThe fully qualified name of a MessageFactory implementation
policiesstring
port_rangestringThe range of valid ports: [bind_port .. bind_port+port_range ]. 0 only binds to bind_port and fails if taken
receive_interfacesstringComma delimited list of interfaces (IP addresses or interface names) to receive multicasts on
receive_on_all_interfacesstringIf true, the transport should use all available interfaces to receive multicast messages
recv_buf_sizestringsize in bytes of TCP receiver window
send_buf_sizestringsize in bytes of TCP send window
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
suppress_time_different_cluster_warningsstringTime during which identical warnings about messages from a member from a different cluster will be suppressed. 0 disables this (every warning will be logged). Setting the log level to ERROR also disables this.
suppress_time_different_version_warningsstringTime during which identical warnings about messages from a member with a different version will be suppressed. 0 disables this (every warning will be logged). Setting the log level to ERROR also disables this.
thread_naming_patternstringThread naming pattern for threads in this channel. Valid values are "pcl": "p": includes the thread name, e.g. "Incoming thread-1", "UDP ucast receiver", "c": includes the cluster name, e.g. "MyCluster", "l": includes the local address of the current member, e.g. "192.168.5.1:5678"
thread_pool.deltastringAdded to the view size when the pool is increased dynamically
thread_pool.enabledstringWhether or not the thread pool is enabled. If false, tasks will be run on the caller's thread
thread_pool.increase_max_size_dynamicallystringIncreases max_threads by the view size + delta if enabled (https://issues.redhat.com/browse/JGRP-2655)
thread_pool.keep_alive_timestringTimeout (ms) to remove idle threads from the pool
thread_pool.max_threadsstringMaximum thread pool size for the thread pool
thread_pool.min_threadsstringMinimum thread pool size for the thread pool
thread_pool.rejection_policystringThe rejection policy to be used in the thread pool (abort, discard, run, custom etc. See Util.parseRejectionPolicy() for details
thread_pool.thread_dump_pathstringPath to which the thread dump will be written. Ignored if null
thread_pool.thread_dumps_thresholdstringThe number of times a thread pool needs to be full before a thread dump is logged
time_service_intervalstringInterval (in ms) at which the time service updates its timestamp. 0 disables the time service
use_virtual_threadsstringIf true, create virtual threads, otherwise create native threads
who_has_cache_timeoutstringTimeout (in ms) to determine how long to wait until a request to fetch the physical address for a given logical address will be sent again. Subsequent requests for the same physical address will therefore be spaced at least who_has_cache_timeout ms apart

TCP

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
bind_addrstringThe bind address which should be used by this transport. The following special values are also recognized: GLOBAL, SITE_LOCAL, LINK_LOCAL, NON_LOOPBACK, match-interface, match-host, match-address
bind_portstringThe port to which the transport binds. Default of 0 binds to any (ephemeral) port. See also port_range
buffered_input_stream_sizestringSize of the buffer of the BufferedInputStream in TcpConnection. A read always tries to read ahead as much data as possible into the buffer. 0: default size
buffered_output_stream_sizestringSize of the buffer of the BufferedOutputStream in TcpConnection. Smaller messages are buffered until this size is exceeded or flush() is called. Bigger messages are sent immediately. 0: default size
bundler.capacitystringThe max number of elements in a bundler if the bundler supports size limitations
bundler.flush_intervalstringMax interval (millis) at which the queued messages are sent
bundler.max_batch_sizestringThe maximum number of messages per batch
bundler.max_sizestringMaximum number of bytes for messages to be queued until they are sent
bundler.max_threadsstringMax number of threads in thread pool
bundler.num_spinsstringNumber of spins before a real lock is acquired
bundler.poll_timeoutstringTime (microseconds) to wait on poll() from the down_queue. A value of <= 0 doesn't wait
bundler.remove_queue_sizestringThe capacity of the remove queue
bundler.wait_strategystringThe wait strategy: spin, yield, park, spin-park, spin-yield
bundler_typestringThe type of bundler used ("ring-buffer", "transfer-queue" (default), "sender-sends" or "no-bundler") or the fully qualified classname of a Bundler implementation
client_bind_addrstringThe address of a local network interface which should be used by client sockets to bind to. The following special values are also recognized: GLOBAL, SITE_LOCAL, LINK_LOCAL and NON_LOOPBACK
client_bind_portstringThe local port a client socket should bind to. If 0, an ephemeral port will be picked.
conn_expire_timestringMax time connection can be idle before being reaped (in ms)
defer_client_bind_addrstringIf true, client sockets will not explicitly bind to bind_addr but will defer to the native socket
diag.bind_addrstringBind address for diagnostic probing, to bind the TCP socket. Used when enable_tcp is true
diag.bind_interfacesstringComma delimited list of interfaces (IP addrs or interface names) that the multicast socket should bind to
diag.enable_tcpstringUse a TCP socket to listen for probe requests (ignored if diag.enabled is false)
diag.enable_udpstringUse a multicast socket to listen for probe requests (ignored if diag.enabled is false)
diag.enabledstringSwitch to enable diagnostic probing
diag.mcast_addrstringMulticast address for diagnostic probing (UDP MulticastSocket). Used when enable_udp is true
diag.passcodestringAuthorization passcode for diagnostics. If specified every probe query will be authorized
diag.portstringPort for diagnostic probing. Default is 7500
diag.port_rangestringThe number of ports to be probed for an available port (TCP)
diag.ttlstringTTL of the diagnostics multicast socket
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
external_addrstringUse "external_addr" if you have hosts on different networks, behind firewalls. On each firewall, set up a port forwarding rule (sometimes called "virtual server") to the local IP (e.g. 192.168.1.100) of the host then on each host, set "external_addr" TCP transport parameter to the external (public IP) address of the firewall.
external_portstringUsed to map the internal port (bind_port) to an external port. Only used if > 0
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
lingerstringSO_LINGER in seconds. Default of -1 disables it
local_transport_classstringThe fully qualified name of a class implementing LocalTransport
log_accept_errorstringLog a warning (or not) when ServerSocket.accept() throws an exception
log_detailsstringLog a stack trace when a connection is closed
log_discard_msgsstringwhether or not warnings about messages from different groups are logged
log_discard_msgs_versionstringwhether or not warnings about messages from members with a different version are discarded
logical_addr_cache_expirationstringTime (in ms) after which entries in the logical address cache marked as removable can be removed. 0 never removes any entries (not recommended)
logical_addr_cache_max_sizestringMax number of elements in the logical address cache before eviction starts
logical_addr_cache_reaper_intervalstringInterval (in ms) at which the reaper task scans logical_addr_cache and removes entries marked as removable. 0 disables reaping.
loopback_copystringWhether or not to make a copy of a message before looping it back up. Don't use this; might get removed without warning
loopback_separate_threadstringLoop back the message on a separate thread or use the current thread. Don't use this; might get removed without warning
max_lengthstringThe max number of bytes a message can have. If greater, an exception will be thrown. 0 disables this
message_processing_policystringThe fully qualified name of a class implementing MessageProcessingPolicy
msg_factory_classstringThe fully qualified name of a MessageFactory implementation
peer_addr_read_timeoutstringMax time to block on reading of peer address
policiesstring
port_rangestringThe range of valid ports: [bind_port .. bind_port+port_range ]. 0 only binds to bind_port and fails if taken
reaper_intervalstringReaper interval in msec. Default is 0 (no reaping)
receive_interfacesstringComma delimited list of interfaces (IP addresses or interface names) to receive multicasts on
receive_on_all_interfacesstringIf true, the transport should use all available interfaces to receive multicast messages
recv_buf_sizestringReceiver buffer size in bytes
send_buf_sizestringSend buffer size in bytes
sock_conn_timeoutstringMax time allowed for a socket creation in connection table
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
suppress_time_different_cluster_warningsstringTime during which identical warnings about messages from a member from a different cluster will be suppressed. 0 disables this (every warning will be logged). Setting the log level to ERROR also disables this.
suppress_time_different_version_warningsstringTime during which identical warnings about messages from a member with a different version will be suppressed. 0 disables this (every warning will be logged). Setting the log level to ERROR also disables this.
tcp_nodelaystringShould TCP no delay flag be turned on
thread_naming_patternstringThread naming pattern for threads in this channel. Valid values are "pcl": "p": includes the thread name, e.g. "Incoming thread-1", "UDP ucast receiver", "c": includes the cluster name, e.g. "MyCluster", "l": includes the local address of the current member, e.g. "192.168.5.1:5678"
thread_pool.deltastringAdded to the view size when the pool is increased dynamically
thread_pool.enabledstringWhether or not the thread pool is enabled. If false, tasks will be run on the caller's thread
thread_pool.increase_max_size_dynamicallystringIncreases max_threads by the view size + delta if enabled (https://issues.redhat.com/browse/JGRP-2655)
thread_pool.keep_alive_timestringTimeout (ms) to remove idle threads from the pool
thread_pool.max_threadsstringMaximum thread pool size for the thread pool
thread_pool.min_threadsstringMinimum thread pool size for the thread pool
thread_pool.rejection_policystringThe rejection policy to be used in the thread pool (abort, discard, run, custom etc. See Util.parseRejectionPolicy() for details
thread_pool.thread_dump_pathstringPath to which the thread dump will be written. Ignored if null
thread_pool.thread_dumps_thresholdstringThe number of times a thread pool needs to be full before a thread dump is logged
time_service_intervalstringInterval (in ms) at which the time service updates its timestamp. 0 disables the time service
tls.cipher_suitesstringThe list of cipher suites
tls.client_authstringDefines whether client certificate authentication is required. Legal values are NONE, WANT or NEED
tls.enabledstringEnables TLS; when true, SSL sockets will be used instead of regular sockets
tls.keystore_aliasstringAlias used for fetching the key
tls.keystore_passwordstringKeystore password
tls.keystore_pathstringFully qualified path to the keystore
tls.keystore_typestringThe type of the keystore
tls.protocolsstringOne or more TLS protocol names to use, e.g. TLSv1.2. Setting this requires configuring key and trust stores
tls.providerstringThe security provider. Defaults to null, which will use the default JDK provider
tls.sni_matchersstringA list of regular expression that servers use to match and accept SNI host names
tls.truststore_passwordstringThe password of the truststore
tls.truststore_pathstringFully qualified path to the truststore
tls.truststore_typestringThe type of the truststore
use_acksstringWait for an ack from the server when a connection is established (https://issues.redhat.com/browse/JGRP-2684)
use_virtual_threadsstringIf true, create virtual threads, otherwise create native threads
who_has_cache_timeoutstringTimeout (in ms) to determine how long to wait until a request to fetch the physical address for a given logical address will be sent again. Subsequent requests for the same physical address will therefore be spaced at least who_has_cache_timeout ms apart

TCPGOSSIP

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
async_discoverystringIf true then the discovery is done on a separate timer thread. Should be set to true when discovery is blocking and/or takes more than a few milliseconds
async_discovery_use_separate_thread_per_requeststringIf enabled, use a separate thread for every discovery request. Can be used with or without async_discovery
break_on_coord_rspstringReturn from the discovery phase as soon as we have 1 coordinator response
discovery_rsp_expiry_timestringExpiry time of discovery responses in ms
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
initial_hostsstringComma delimited list of hosts to be contacted for initial membership
levelstringlogger level (see javadocs)
max_members_in_discovery_requeststringMax size of the member list shipped with a discovery request. If we have more, the mbrs field in the discovery request header is nulled and members return the entire membership, not individual members
max_rank_to_replystringThe max rank of this member to respond to discovery requests, e.g. if max_rank_to_reply=2 in {A,B,C,D,E}, only A (rank 1) and B (rank 2) will reply. A value <= 0 means everybody will reply. This attribute is ignored if TP.use_ip_addrs is false.
num_discovery_runsstringThe number of times a discovery process is executed when finding initial members (https://issues.redhat.com/browse/JGRP-2317)
policiesstring
reconnect_intervalstringInterval (ms) by which a disconnected stub attempts to reconnect to the GossipRouter
return_entire_cachestringWhether or not to return the entire logical-physical address cache mappings on a discovery request, or not.
send_cache_on_joinstringWhen a new node joins, and we have a static discovery protocol (TCPPING), then send the contents of the discovery cache to new and existing members if true (and we're the coord). Addresses JGRP-1903
sock_conn_timeoutstringMax time for socket creation. Default is 1000 ms
stagger_timeoutstringIf greater than 0, we'll wait a random number of milliseconds in range [0..stagger_timeout] before sending a discovery response. This prevents traffic spikes in large clusters when everyone sends their discovery response at the same time
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
use_disk_cachestringIf a persistent disk cache (PDC) is present, combine the discovery results with the contents of the disk cache before returning the results
use_niostringWhether to use blocking (false) or non-blocking (true) connections. If GossipRouter is used, this needs to be false; if GossipRouterNio is used, it needs to be true

TCPPING

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
async_discoverystringIf true then the discovery is done on a separate timer thread. Should be set to true when discovery is blocking and/or takes more than a few milliseconds
async_discovery_use_separate_thread_per_requeststringIf enabled, use a separate thread for every discovery request. Can be used with or without async_discovery
break_on_coord_rspstringReturn from the discovery phase as soon as we have 1 coordinator response
discovery_rsp_expiry_timestringExpiry time of discovery responses in ms
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
initial_hostsstringComma delimited list of hosts to be contacted for initial membership. Ideally, all members should be listed. If this is not possible, send_cache_on_join and / or return_entire_cache can be set to true
levelstringlogger level (see javadocs)
max_dynamic_hostsstringmax number of hosts to keep beyond the ones in initial_hosts
max_members_in_discovery_requeststringMax size of the member list shipped with a discovery request. If we have more, the mbrs field in the discovery request header is nulled and members return the entire membership, not individual members
max_rank_to_replystringThe max rank of this member to respond to discovery requests, e.g. if max_rank_to_reply=2 in {A,B,C,D,E}, only A (rank 1) and B (rank 2) will reply. A value <= 0 means everybody will reply. This attribute is ignored if TP.use_ip_addrs is false.
num_discovery_runsstringThe number of times a discovery process is executed when finding initial members (https://issues.redhat.com/browse/JGRP-2317)
policiesstring
port_rangestringNumber of additional ports to be probed for membership. A port_range of 0 does not probe additional ports. Example: initial_hosts=A[7800] port_range=0 probes A:7800, port_range=1 probes A:7800 and A:7801
return_entire_cachestringWhether or not to return the entire logical-physical address cache mappings on a discovery request, or not.
send_cache_on_joinstringWhen a new node joins, and we have a static discovery protocol (TCPPING), then send the contents of the discovery cache to new and existing members if true (and we're the coord). Addresses JGRP-1903
stagger_timeoutstringIf greater than 0, we'll wait a random number of milliseconds in range [0..stagger_timeout] before sending a discovery response. This prevents traffic spikes in large clusters when everyone sends their discovery response at the same time
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
use_disk_cachestringIf a persistent disk cache (PDC) is present, combine the discovery results with the contents of the disk cache before returning the results

TCP_NIO2

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
bind_addrstringThe bind address which should be used by this transport. The following special values are also recognized: GLOBAL, SITE_LOCAL, LINK_LOCAL, NON_LOOPBACK, match-interface, match-host, match-address
bind_portstringThe port to which the transport binds. Default of 0 binds to any (ephemeral) port. See also port_range
bundler.capacitystringThe max number of elements in a bundler if the bundler supports size limitations
bundler.flush_intervalstringMax interval (millis) at which the queued messages are sent
bundler.max_batch_sizestringThe maximum number of messages per batch
bundler.max_sizestringMaximum number of bytes for messages to be queued until they are sent
bundler.max_threadsstringMax number of threads in thread pool
bundler.num_spinsstringNumber of spins before a real lock is acquired
bundler.poll_timeoutstringTime (microseconds) to wait on poll() from the down_queue. A value of <= 0 doesn't wait
bundler.remove_queue_sizestringThe capacity of the remove queue
bundler.wait_strategystringThe wait strategy: spin, yield, park, spin-park, spin-yield
bundler_typestringThe type of bundler used ("ring-buffer", "transfer-queue" (default), "sender-sends" or "no-bundler") or the fully qualified classname of a Bundler implementation
client_bind_addrstringThe address of a local network interface which should be used by client sockets to bind to. The following special values are also recognized: GLOBAL, SITE_LOCAL, LINK_LOCAL and NON_LOOPBACK
client_bind_portstringThe local port a client socket should bind to. If 0, an ephemeral port will be picked.
conn_expire_timestringMax time connection can be idle before being reaped (in ms)
copy_on_partial_writestringIf true, a partial write will make a copy of the data so a buffer can be reused
defer_client_bind_addrstringIf true, client sockets will not explicitly bind to bind_addr but will defer to the native socket
diag.bind_addrstringBind address for diagnostic probing, to bind the TCP socket. Used when enable_tcp is true
diag.bind_interfacesstringComma delimited list of interfaces (IP addrs or interface names) that the multicast socket should bind to
diag.enable_tcpstringUse a TCP socket to listen for probe requests (ignored if diag.enabled is false)
diag.enable_udpstringUse a multicast socket to listen for probe requests (ignored if diag.enabled is false)
diag.enabledstringSwitch to enable diagnostic probing
diag.mcast_addrstringMulticast address for diagnostic probing (UDP MulticastSocket). Used when enable_udp is true
diag.passcodestringAuthorization passcode for diagnostics. If specified every probe query will be authorized
diag.portstringPort for diagnostic probing. Default is 7500
diag.port_rangestringThe number of ports to be probed for an available port (TCP)
diag.ttlstringTTL of the diagnostics multicast socket
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
external_addrstringUse "external_addr" if you have hosts on different networks, behind firewalls. On each firewall, set up a port forwarding rule (sometimes called "virtual server") to the local IP (e.g. 192.168.1.100) of the host then on each host, set "external_addr" TCP transport parameter to the external (public IP) address of the firewall.
external_portstringUsed to map the internal port (bind_port) to an external port. Only used if > 0
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
lingerstringSO_LINGER in seconds. Default of -1 disables it
local_transport_classstringThe fully qualified name of a class implementing LocalTransport
log_detailsstringLog a stack trace when a connection is closed
log_discard_msgsstringwhether or not warnings about messages from different groups are logged
log_discard_msgs_versionstringwhether or not warnings about messages from members with a different version are discarded
logical_addr_cache_expirationstringTime (in ms) after which entries in the logical address cache marked as removable can be removed. 0 never removes any entries (not recommended)
logical_addr_cache_max_sizestringMax number of elements in the logical address cache before eviction starts
logical_addr_cache_reaper_intervalstringInterval (in ms) at which the reaper task scans logical_addr_cache and removes entries marked as removable. 0 disables reaping.
loopback_copystringWhether or not to make a copy of a message before looping it back up. Don't use this; might get removed without warning
loopback_separate_threadstringLoop back the message on a separate thread or use the current thread. Don't use this; might get removed without warning
max_lengthstringThe max number of bytes a message can have. If greater, an exception will be thrown. 0 disables this
max_send_buffersstringThe max number of outgoing messages that can get queued for a given peer connection (before dropping them). Most messages will get retransmitted; this is mainly used at startup, e.g. to prevent dropped discovery requests or responses (sent unreliably, without retransmission).
message_processing_policystringThe fully qualified name of a class implementing MessageProcessingPolicy
msg_factory_classstringThe fully qualified name of a MessageFactory implementation
peer_addr_read_timeoutstringMax time to block on reading of peer address
policiesstring
port_rangestringThe range of valid ports: [bind_port .. bind_port+port_range ]. 0 only binds to bind_port and fails if taken
reader_idle_timestringNumber of ms a reader thread on a given connection can be idle (not receiving any messages) until it terminates. New messages will start a new reader
reaper_intervalstringReaper interval in msec. Default is 0 (no reaping)
receive_interfacesstringComma delimited list of interfaces (IP addresses or interface names) to receive multicasts on
receive_on_all_interfacesstringIf true, the transport should use all available interfaces to receive multicast messages
recv_buf_sizestringReceiver buffer size in bytes
send_buf_sizestringSend buffer size in bytes
sock_conn_timeoutstringMax time allowed for a socket creation in connection table
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
suppress_time_different_cluster_warningsstringTime during which identical warnings about messages from a member from a different cluster will be suppressed. 0 disables this (every warning will be logged). Setting the log level to ERROR also disables this.
suppress_time_different_version_warningsstringTime during which identical warnings about messages from a member with a different version will be suppressed. 0 disables this (every warning will be logged). Setting the log level to ERROR also disables this.
tcp_nodelaystringShould TCP no delay flag be turned on
thread_naming_patternstringThread naming pattern for threads in this channel. Valid values are "pcl": "p": includes the thread name, e.g. "Incoming thread-1", "UDP ucast receiver", "c": includes the cluster name, e.g. "MyCluster", "l": includes the local address of the current member, e.g. "192.168.5.1:5678"
thread_pool.deltastringAdded to the view size when the pool is increased dynamically
thread_pool.enabledstringWhether or not the thread pool is enabled. If false, tasks will be run on the caller's thread
thread_pool.increase_max_size_dynamicallystringIncreases max_threads by the view size + delta if enabled (https://issues.redhat.com/browse/JGRP-2655)
thread_pool.keep_alive_timestringTimeout (ms) to remove idle threads from the pool
thread_pool.max_threadsstringMaximum thread pool size for the thread pool
thread_pool.min_threadsstringMinimum thread pool size for the thread pool
thread_pool.rejection_policystringThe rejection policy to be used in the thread pool (abort, discard, run, custom etc. See Util.parseRejectionPolicy() for details
thread_pool.thread_dump_pathstringPath to which the thread dump will be written. Ignored if null
thread_pool.thread_dumps_thresholdstringThe number of times a thread pool needs to be full before a thread dump is logged
time_service_intervalstringInterval (in ms) at which the time service updates its timestamp. 0 disables the time service
use_acksstringWait for an ack from the server when a connection is established (https://issues.redhat.com/browse/JGRP-2684)
use_virtual_threadsstringIf true, create virtual threads, otherwise create native threads
who_has_cache_timeoutstringTimeout (in ms) to determine how long to wait until a request to fetch the physical address for a given logical address will be sent again. Subsequent requests for the same physical address will therefore be spaced at least who_has_cache_timeout ms apart

THREAD_COUNT

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
down_threadsstringEnables the average for down threads
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
policiesstring
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
up_threadsstringEnables the average for up threads

TIME

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
down_msgsstringEnables or disables measuring times of messages sent down
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
policiesstring
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
up_batchesstringEnables or disables measuring times of message batches received from below
up_msgsstringEnables or disables measuring times of messages received from below. Attribute up_batches has to be true, or else up_msgs will be ignored

TRACE

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
policiesstring
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true

TUNNEL

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
bind_addrstringThe bind address which should be used by this transport. The following special values are also recognized: GLOBAL, SITE_LOCAL, LINK_LOCAL, NON_LOOPBACK, match-interface, match-host, match-address
bind_portstringThe port to which the transport binds. Default of 0 binds to any (ephemeral) port. See also port_range
bundler.capacitystringThe max number of elements in a bundler if the bundler supports size limitations
bundler.flush_intervalstringMax interval (millis) at which the queued messages are sent
bundler.max_batch_sizestringThe maximum number of messages per batch
bundler.max_sizestringMaximum number of bytes for messages to be queued until they are sent
bundler.max_threadsstringMax number of threads in thread pool
bundler.num_spinsstringNumber of spins before a real lock is acquired
bundler.poll_timeoutstringTime (microseconds) to wait on poll() from the down_queue. A value of <= 0 doesn't wait
bundler.remove_queue_sizestringThe capacity of the remove queue
bundler.wait_strategystringThe wait strategy: spin, yield, park, spin-park, spin-yield
bundler_typestringThe type of bundler used ("ring-buffer", "transfer-queue" (default), "sender-sends" or "no-bundler") or the fully qualified classname of a Bundler implementation
diag.bind_addrstringBind address for diagnostic probing, to bind the TCP socket. Used when enable_tcp is true
diag.bind_interfacesstringComma delimited list of interfaces (IP addrs or interface names) that the multicast socket should bind to
diag.enable_tcpstringUse a TCP socket to listen for probe requests (ignored if diag.enabled is false)
diag.enable_udpstringUse a multicast socket to listen for probe requests (ignored if diag.enabled is false)
diag.enabledstringSwitch to enable diagnostic probing
diag.mcast_addrstringMulticast address for diagnostic probing (UDP MulticastSocket). Used when enable_udp is true
diag.passcodestringAuthorization passcode for diagnostics. If specified every probe query will be authorized
diag.portstringPort for diagnostic probing. Default is 7500
diag.port_rangestringThe number of ports to be probed for an available port (TCP)
diag.ttlstringTTL of the diagnostics multicast socket
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
external_addrstringUse "external_addr" if you have hosts on different networks, behind firewalls. On each firewall, set up a port forwarding rule (sometimes called "virtual server") to the local IP (e.g. 192.168.1.100) of the host then on each host, set "external_addr" TCP transport parameter to the external (public IP) address of the firewall.
external_portstringUsed to map the internal port (bind_port) to an external port. Only used if > 0
gossip_router_hostsstringA comma-separated list of GossipRouter hosts, e.g. HostA[12001],HostB[12001]
heartbeat_intervalstringSends a heartbeat to the GossipRouter every heartbeat_interval ms (0 disables this)
heartbeat_timeoutstringMax time (ms) with no received message or heartbeat after which the connection to a GossipRouter is closed. Ignored when heartbeat_interval is 0.
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
local_transport_classstringThe fully qualified name of a class implementing LocalTransport
log_discard_msgsstringwhether or not warnings about messages from different groups are logged
log_discard_msgs_versionstringwhether or not warnings about messages from members with a different version are discarded
logical_addr_cache_expirationstringTime (in ms) after which entries in the logical address cache marked as removable can be removed. 0 never removes any entries (not recommended)
logical_addr_cache_max_sizestringMax number of elements in the logical address cache before eviction starts
logical_addr_cache_reaper_intervalstringInterval (in ms) at which the reaper task scans logical_addr_cache and removes entries marked as removable. 0 disables reaping.
loopback_copystringWhether or not to make a copy of a message before looping it back up. Don't use this; might get removed without warning
loopback_separate_threadstringLoop back the message on a separate thread or use the current thread. Don't use this; might get removed without warning
message_processing_policystringThe fully qualified name of a class implementing MessageProcessingPolicy
msg_factory_classstringThe fully qualified name of a MessageFactory implementation
policiesstring
port_rangestringThe range of valid ports: [bind_port .. bind_port+port_range ]. 0 only binds to bind_port and fails if taken
receive_interfacesstringComma delimited list of interfaces (IP addresses or interface names) to receive multicasts on
receive_on_all_interfacesstringIf true, the transport should use all available interfaces to receive multicast messages
reconnect_intervalstringInterval in msec to attempt connecting back to router in case of torn connection
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
suppress_time_different_cluster_warningsstringTime during which identical warnings about messages from a member from a different cluster will be suppressed. 0 disables this (every warning will be logged). Setting the log level to ERROR also disables this.
suppress_time_different_version_warningsstringTime during which identical warnings about messages from a member with a different version will be suppressed. 0 disables this (every warning will be logged). Setting the log level to ERROR also disables this.
tcp_nodelaystringShould TCP no delay flag be turned on
thread_naming_patternstringThread naming pattern for threads in this channel. Valid values are "pcl": "p": includes the thread name, e.g. "Incoming thread-1", "UDP ucast receiver", "c": includes the cluster name, e.g. "MyCluster", "l": includes the local address of the current member, e.g. "192.168.5.1:5678"
thread_pool.deltastringAdded to the view size when the pool is increased dynamically
thread_pool.enabledstringWhether or not the thread pool is enabled. If false, tasks will be run on the caller's thread
thread_pool.increase_max_size_dynamicallystringIncreases max_threads by the view size + delta if enabled (https://issues.redhat.com/browse/JGRP-2655)
thread_pool.keep_alive_timestringTimeout (ms) to remove idle threads from the pool
thread_pool.max_threadsstringMaximum thread pool size for the thread pool
thread_pool.min_threadsstringMinimum thread pool size for the thread pool
thread_pool.rejection_policystringThe rejection policy to be used in the thread pool (abort, discard, run, custom etc. See Util.parseRejectionPolicy() for details
thread_pool.thread_dump_pathstringPath to which the thread dump will be written. Ignored if null
thread_pool.thread_dumps_thresholdstringThe number of times a thread pool needs to be full before a thread dump is logged
time_service_intervalstringInterval (in ms) at which the time service updates its timestamp. 0 disables the time service
tls.cipher_suitesstringThe list of cipher suites
tls.client_authstringDefines whether client certificate authentication is required. Legal values are NONE, WANT or NEED
tls.enabledstringEnables TLS; when true, SSL sockets will be used instead of regular sockets
tls.keystore_aliasstringAlias used for fetching the key
tls.keystore_passwordstringKeystore password
tls.keystore_pathstringFully qualified path to the keystore
tls.keystore_typestringThe type of the keystore
tls.protocolsstringOne or more TLS protocol names to use, e.g. TLSv1.2. Setting this requires configuring key and trust stores
tls.providerstringThe security provider. Defaults to null, which will use the default JDK provider
tls.sni_matchersstringA list of regular expression that servers use to match and accept SNI host names
tls.truststore_passwordstringThe password of the truststore
tls.truststore_pathstringFully qualified path to the truststore
tls.truststore_typestringThe type of the truststore
use_niostringWhether to use blocking (false) or non-blocking (true) connections. If GossipRouter is used, this needs to be false; if GossipRouterNio is used, it needs to be true
use_virtual_threadsstringIf true, create virtual threads, otherwise create native threads
who_has_cache_timeoutstringTimeout (in ms) to determine how long to wait until a request to fetch the physical address for a given logical address will be sent again. Subsequent requests for the same physical address will therefore be spaced at least who_has_cache_timeout ms apart

UDP

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
bind_addrstringThe bind address which should be used by this transport. The following special values are also recognized: GLOBAL, SITE_LOCAL, LINK_LOCAL, NON_LOOPBACK, match-interface, match-host, match-address
bind_portstringThe port to which the transport binds. Default of 0 binds to any (ephemeral) port. See also port_range
bundler.capacitystringThe max number of elements in a bundler if the bundler supports size limitations
bundler.flush_intervalstringMax interval (millis) at which the queued messages are sent
bundler.max_batch_sizestringThe maximum number of messages per batch
bundler.max_sizestringMaximum number of bytes for messages to be queued until they are sent
bundler.max_threadsstringMax number of threads in thread pool
bundler.num_spinsstringNumber of spins before a real lock is acquired
bundler.poll_timeoutstringTime (microseconds) to wait on poll() from the down_queue. A value of <= 0 doesn't wait
bundler.remove_queue_sizestringThe capacity of the remove queue
bundler.wait_strategystringThe wait strategy: spin, yield, park, spin-park, spin-yield
bundler_typestringThe type of bundler used ("ring-buffer", "transfer-queue" (default), "sender-sends" or "no-bundler") or the fully qualified classname of a Bundler implementation
diag.bind_addrstringBind address for diagnostic probing, to bind the TCP socket. Used when enable_tcp is true
diag.bind_interfacesstringComma delimited list of interfaces (IP addrs or interface names) that the multicast socket should bind to
diag.enable_tcpstringUse a TCP socket to listen for probe requests (ignored if diag.enabled is false)
diag.enable_udpstringUse a multicast socket to listen for probe requests (ignored if diag.enabled is false)
diag.enabledstringSwitch to enable diagnostic probing
diag.mcast_addrstringMulticast address for diagnostic probing (UDP MulticastSocket). Used when enable_udp is true
diag.passcodestringAuthorization passcode for diagnostics. If specified every probe query will be authorized
diag.portstringPort for diagnostic probing. Default is 7500
diag.port_rangestringThe number of ports to be probed for an available port (TCP)
diag.ttlstringTTL of the diagnostics multicast socket
disable_loopbackstringIf true, disables IP_MULTICAST_LOOP on the MulticastSocket (for sending and receiving of multicast packets). IP multicast packets send on a host P will therefore not be received by anyone on P. Use with caution.
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
external_addrstringUse "external_addr" if you have hosts on different networks, behind firewalls. On each firewall, set up a port forwarding rule (sometimes called "virtual server") to the local IP (e.g. 192.168.1.100) of the host then on each host, set "external_addr" TCP transport parameter to the external (public IP) address of the firewall.
external_portstringUsed to map the internal port (bind_port) to an external port. Only used if > 0
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
ip_mcaststringMulticast toggle. If false multiple unicast datagrams are sent instead of one multicast. Default is true
ip_ttlstringThe time-to-live (TTL) for multicast datagram packets. Default is 8
levelstringlogger level (see javadocs)
local_transport_classstringThe fully qualified name of a class implementing LocalTransport
log_discard_msgsstringwhether or not warnings about messages from different groups are logged
log_discard_msgs_versionstringwhether or not warnings about messages from members with a different version are discarded
logical_addr_cache_expirationstringTime (in ms) after which entries in the logical address cache marked as removable can be removed. 0 never removes any entries (not recommended)
logical_addr_cache_max_sizestringMax number of elements in the logical address cache before eviction starts
logical_addr_cache_reaper_intervalstringInterval (in ms) at which the reaper task scans logical_addr_cache and removes entries marked as removable. 0 disables reaping.
loopback_copystringWhether or not to make a copy of a message before looping it back up. Don't use this; might get removed without warning
loopback_separate_threadstringLoop back the message on a separate thread or use the current thread. Don't use this; might get removed without warning
mcast_addrstringThe multicast address used for sending and receiving packets
mcast_portstringThe multicast port used for sending and receiving packets. Default is 7600
mcast_receiver_threadsstringNumber of multicast receiver threads, all reading from the same MulticastSocket. If de-serialization is slow, increasing the number of receiver threads might yield better performance.
mcast_recv_buf_sizestringReceive buffer size of the multicast datagram socket
mcast_send_buf_sizestringSend buffer size of the multicast datagram socket
message_processing_policystringThe fully qualified name of a class implementing MessageProcessingPolicy
msg_factory_classstringThe fully qualified name of a MessageFactory implementation
policiesstring
port_rangestringThe range of valid ports: [bind_port .. bind_port+port_range ]. 0 only binds to bind_port and fails if taken
receive_interfacesstringComma delimited list of interfaces (IP addresses or interface names) to receive multicasts on
receive_on_all_interfacesstringIf true, the transport should use all available interfaces to receive multicast messages
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
suppress_time_different_cluster_warningsstringTime during which identical warnings about messages from a member from a different cluster will be suppressed. 0 disables this (every warning will be logged). Setting the log level to ERROR also disables this.
suppress_time_different_version_warningsstringTime during which identical warnings about messages from a member with a different version will be suppressed. 0 disables this (every warning will be logged). Setting the log level to ERROR also disables this.
suppress_time_out_of_buffer_spacestringSuppresses warnings on Mac OS (for now) about not enough buffer space when sending a datagram packet
thread_naming_patternstringThread naming pattern for threads in this channel. Valid values are "pcl": "p": includes the thread name, e.g. "Incoming thread-1", "UDP ucast receiver", "c": includes the cluster name, e.g. "MyCluster", "l": includes the local address of the current member, e.g. "192.168.5.1:5678"
thread_pool.deltastringAdded to the view size when the pool is increased dynamically
thread_pool.enabledstringWhether or not the thread pool is enabled. If false, tasks will be run on the caller's thread
thread_pool.increase_max_size_dynamicallystringIncreases max_threads by the view size + delta if enabled (https://issues.redhat.com/browse/JGRP-2655)
thread_pool.keep_alive_timestringTimeout (ms) to remove idle threads from the pool
thread_pool.max_threadsstringMaximum thread pool size for the thread pool
thread_pool.min_threadsstringMinimum thread pool size for the thread pool
thread_pool.rejection_policystringThe rejection policy to be used in the thread pool (abort, discard, run, custom etc. See Util.parseRejectionPolicy() for details
thread_pool.thread_dump_pathstringPath to which the thread dump will be written. Ignored if null
thread_pool.thread_dumps_thresholdstringThe number of times a thread pool needs to be full before a thread dump is logged
time_service_intervalstringInterval (in ms) at which the time service updates its timestamp. 0 disables the time service
tosstringTraffic class for sending unicast and multicast datagrams
ucast_receiver_threadsstringNumber of unicast receiver threads, all reading from the same DatagramSocket. If de-serialization is slow, increasing the number of receiver threads might yield better performance.
ucast_recv_buf_sizestringReceive buffer size of the unicast datagram socket
ucast_send_buf_sizestringSend buffer size of the unicast datagram socket
use_virtual_threadsstringIf true, create virtual threads, otherwise create native threads
who_has_cache_timeoutstringTimeout (in ms) to determine how long to wait until a request to fetch the physical address for a given logical address will be sent again. Subsequent requests for the same physical address will therefore be spaced at least who_has_cache_timeout ms apart

UFC

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
max_block_timestringMax time (in ms) to block
max_creditsstringMax number of bytes to send per receiver until an ack must be received to proceed
min_creditsstringComputed as max_credits x min_theshold unless explicitly set
min_thresholdstringThe threshold (as a percentage of max_credits) at which a receiver sends more credits to a sender. Example: if max_credits is 1'000'000, and min_threshold 0.25, then we send ca. 250'000 credits to P once we've got only 250'000 credits left for P (we've received 750'000 bytes from P)
policiesstring
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true

UFC_NB

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
max_block_timestringMax time (in ms) to block
max_creditsstringMax number of bytes to send per receiver until an ack must be received to proceed
max_queue_sizestringMax number of bytes of all queued messages for a given destination. If a given destination has no credits left and the message cannot be added to the queue because it is full, then the sender thread will be blocked until there is again space available in the queue, or the protocol is stopped.
min_creditsstringComputed as max_credits x min_theshold unless explicitly set
min_thresholdstringThe threshold (as a percentage of max_credits) at which a receiver sends more credits to a sender. Example: if max_credits is 1'000'000, and min_threshold 0.25, then we send ca. 250'000 credits to P once we've got only 250'000 credits left for P (we've received 750'000 bytes from P)
policiesstring
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true

UNICAST3

NameTypeDefaultDescription
ack_thresholdstringSend an ack immediately when a batch of ack_threshold (or more) messages is received. Otherwise send delayed acks. If 1, ack single messages (similar to UNICAST)
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
conn_close_timeoutstringTime (in ms) until a connection marked to be closed will get removed. 0 disables this
conn_expiry_timeoutstringTime (in milliseconds) after which an idle incoming or outgoing connection is closed. The connection will get re-established when used again. 0 disables connection reaping. Note that this creates lingering connection entries, which increases memory over time.
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
log_not_found_msgsstringIf true, trashes warnings about retransmission messages not found in the xmit_table (used for testing)
loopbackstringIf true, a unicast message to self is looped back up on the same thread. Noter that this may cause problems (e.g. deadlocks) in some applications, so make sure that your code can handle this. Issue: https://issues.redhat.com/browse/JGRP-2547
max_batch_sizestringThe max size of a message batch when delivering messages. 0 is unbounded
max_retransmit_timestringMax number of milliseconds we try to retransmit a message to any given member. After that, the connection is removed. Any new connection to that member will start with seqno #1 again. 0 disables this
max_xmit_req_sizestringMax number of messages to ask for in a retransmit request. 0 disables this and uses the max bundle size in the transport
policiesstring
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
sync_min_intervalstringMin time (in ms) to elapse for successive SEND_FIRST_SEQNO messages to be sent to the same sender
xmit_intervalstringInterval (in milliseconds) at which messages in the send windows are resent
xmit_table_max_compaction_timestringNumber of milliseconds after which the matrix in the retransmission table is compacted (only for experts)
xmit_table_msgs_per_rowstringNumber of elements of a row of the matrix in the retransmission table; gets rounded to the next power of 2 (only for experts). The capacity of the matrix is xmit_table_num_rows * xmit_table_msgs_per_row
xmit_table_num_rowsstringNumber of rows of the matrix in the retransmission table (only for experts)
xmit_table_resize_factorstringResize factor of the matrix in the retransmission table (only for experts)
xmits_enabledstringWhen true, the sender retransmits messages until ack'ed and the receiver asks for missing messages. When false, this is not done, but ack'ing and stale connection testing is still done. https://issues.redhat.com/browse/JGRP-2676

VERIFY_SUSPECT

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
bind_addrstringInterface for ICMP pings. Used if use_icmp is true The following special values are also recognized: GLOBAL, SITE_LOCAL, LINK_LOCAL and NON_LOOPBACK
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
num_msgsstringNumber of verify heartbeats sent to a suspected member
policiesstring
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
timeoutstringNumber of millisecs to wait for a response from a suspected member
use_icmpstringUse InetAddress.isReachable() to verify suspected member instead of regular messages
use_mcast_rspsstringSend the I_AM_NOT_DEAD message back as a multicast rather than as multiple unicasts (default is false)

VERIFY_SUSPECT2

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
num_msgsstringNumber of verify heartbeats sent to a suspected member
policiesstring
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
timeoutstringNumber of millis to wait for verification that a suspect is really dead (approximation)
use_mcast_rspsstringSend the I_AM_NOT_DEAD message back as a multicast rather than as multiple unicasts (default is false)

pbcast.FLUSH

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
bypassstringWhen set, FLUSH is bypassed, same effect as if FLUSH wasn't in the config at all
enable_reconciliationstringReconciliation phase toggle. Default is true
end_flush_timeoutstringTimeout to wait for UNBLOCK after STOP_FLUSH is issued. Default is 2000 msec
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
policiesstring
retry_timeoutstringRetry timeout after an unsuccessful attempt to quiet the cluster (first flush phase).Default is 3000 msec
start_flush_timeoutstringTimeout (per atttempt) to quiet the cluster during the first flush phase. Default is 2000 msec
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
timeoutstringMax time to keep channel blocked in flush. Default is 8000 msec

pbcast.GMS

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
all_clients_retry_timeoutstringTime (in ms) to wait for another discovery round when all discovery responses were clients. A timeout of 0 means don't wait at all.
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
join_timeoutstringJoin timeout
leave_timeoutstringMax time (in ms) to wait for a LEAVE response after a LEAVE req has been sent to the coord
levelstringlogger level (see javadocs)
log_collect_msgsstringLogs failures for collecting all view acks if true
log_view_warningsstringLogs warnings for reception of views less than the current, and for views which don't include self
max_join_attemptsstringNumber of join attempts before we give up and become a singleton. 0 means 'never give up'
max_leave_attemptsstringNumber of times a LEAVE request is sent to the coordinator (without receiving a LEAVE response, before giving up and leaving anyway (failure detection will eventually exclude the left member). A value of 0 means wait forever
membership_change_policystringThe fully qualified name of a class implementing MembershipChangePolicy.
merge_timeoutstringTimeout (in ms) to complete merge
num_prev_mbrsstringMax number of old members to keep in history. Default is 50
num_prev_viewsstringNumber of views to store in history
policiesstring
print_local_addrstringPrint local address of this member after connect. Default is true
print_physical_addrsstringPrint physical address(es) on startup
print_view_detailsstringWhen true, left and joined members are printed in addition to the view
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
use_delta_viewsstringIf true, then GMS is allowed to send VIEW messages with delta views, otherwise it always sends full views. See https://issues.redhat.com/browse/JGRP-1354 for details.
use_flush_if_presentstringUse flush for view changes. Default is true
view_ack_collection_timeoutstringTime in ms to wait for all VIEW acks (0 == wait forever. Default is 2000 msec

pbcast.NAKACK2

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
become_server_queue_sizestringSize of the queue to hold messages received after creating the channel, but before being connected (is_server=false). After becoming the server, the messages in the queue are fed into up() and the queue is cleared. The motivation is to avoid retransmissions (see https://issues.redhat.com/browse/JGRP-1509 for details).
discard_delivered_msgsstringShould messages delivered to application be discarded
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
log_discard_msgsstringdiscards warnings about promiscuous traffic
log_not_found_msgsstringIf false, trashes warnings about retransmission messages not found in the xmit_table (used for testing)
max_batch_sizestringThe max size of a message batch when delivering messages. 0 is unbounded
max_rebroadcast_timeoutstringTimeout to rebroadcast messages. Default is 2000 msec
max_xmit_req_sizestringMax number of messages to ask for in a retransmit request. 0 disables this and uses the max bundle size in the transport
policiesstring
resend_last_seqnostringIf enabled, multicasts the highest sent seqno every xmit_interval ms. This is skipped if a regular message has been multicast, and the task aquiesces if the highest sent seqno hasn't changed for resend_last_seqno_max_times times. Used to speed up retransmission of dropped last messages (JGRP-1904)
resend_last_seqno_max_timesstringMax number of times the last seqno is resent before acquiescing if last seqno isn't incremented
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
suppress_time_non_member_warningsstringTime during which identical warnings about messages from a non member will be suppressed. 0 disables this (every warning will be logged). Setting the log level to ERROR also disables this.
use_mcast_xmitstringRetransmit retransmit responses (messages) using multicast rather than unicast
use_mcast_xmit_reqstringUse a multicast to request retransmission of missing messages
xmit_from_random_memberstringAsk a random member for retransmission of a missing message. Default is false
xmit_intervalstringInterval (in milliseconds) at which missing messages (from all retransmit buffers) are retransmitted. 0 turns retransmission off
xmit_table_max_compaction_timestringNumber of milliseconds after which the matrix in the retransmission table is compacted (only for experts)
xmit_table_msgs_per_rowstringNumber of elements of a row of the matrix in the retransmission table; gets rounded to the next power of 2 (only for experts). The capacity of the matrix is xmit_table_num_rows * xmit_table_msgs_per_row
xmit_table_num_rowsstringNumber of rows of the matrix in the retransmission table (only for experts)
xmit_table_resize_factorstringResize factor of the matrix in the retransmission table (only for experts)

pbcast.STABLE

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
desired_avg_gossipstringAverage time to send a STABLE message
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
max_bytesstringMaximum number of bytes received in all messages before sending a STABLE message is triggered
policiesstring
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true

pbcast.STATE

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
buffer_sizestringSize (in bytes) of the state transfer buffer
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
max_poolstringMaximum number of pool threads serving state requests
policiesstring
pool_thread_keep_alivestringKeep alive for pool threads serving state requests
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true

pbcast.STATE_SOCK

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
bind_addrstringThe interface (NIC) used to accept state requests. The following special values are also recognized: GLOBAL, SITE_LOCAL, LINK_LOCAL and NON_LOOPBACK
bind_interfacestringThe interface (NIC) which should be used by this transport
bind_portstringThe port listening for state requests. Default value of 0 binds to any (ephemeral) port
buffer_sizestringSize (in bytes) of the state transfer buffer
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
external_addrstringUse "external_addr" if you have hosts on different networks, behind firewalls. On each firewall, set up a port forwarding rule (sometimes called "virtual server") to the local IP (e.g. 192.168.1.100) of the host then on each host, set "external_addr" TCP transport parameter to the external (public IP) address of the firewall.
external_portstringUsed to map the internal port (bind_port) to an external port. Only used if > 0
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
max_poolstringMaximum number of pool threads serving state requests
policiesstring
pool_thread_keep_alivestringKeep alive for pool threads serving state requests
recv_buf_sizestringThe size (in bytes) of the receive buffer of the socket
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true

pbcast.STATE_TRANSFER

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
policiesstring
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true

relay.RELAY2

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
async_relay_creationstringIf true, the creation of the relay channel (and the connect()) are done in the background. Async relay creation is recommended, so the view callback won't be blocked
can_become_site_masterstringWhether or not this node can become the site master. If false, and we become the coordinator, we won't start the bridge(s)
can_forward_local_clusterstringIf true, a site master forwards messages received from other sites to randomly chosen members of the local site for load balancing, reducing work for itself
configstringName of the relay configuration
enable_address_taggingstringWhether or not we generate our own addresses in which we use can_become_site_master. If this property is false, can_become_site_master is ignored
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
max_site_mastersstringMaximum number of site masters. Setting this to a value greater than 1 means that we can have multiple site masters. If the value is greater than the number of cluster nodes, everyone in the site will be a site master (and thus join the global cluster
policiesstring
relay_multicastsstringWhether or not to relay multicast (dest=null) messages
sitestringName of the site (needs to be defined in the configuration)
site_master_picker_implstringFully qualified name of a class implementing SiteMasterPicker
site_masters_ratiostringRatio of members that are site masters, out of range [0..1] (0 disables this). The number of site masters is computes as Math.min(max_site_masters, view.size() * site_masters_ratio). See https://issues.redhat.com/browse/JGRP-2581 for details
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
suppress_time_no_route_errorsstringTime during which identical errors about no route to host will be suppressed. 0 disables this (every error will be logged).
topo_wait_timestringNumber of millis to wait for topology detection

RelayConfiguration

dns.DNS_PING

NameTypeDefaultDescription
after_creation_hookstringFully qualified name of a class implementing ProtocolHook, will be called after creation of the protocol (before init())
async_discoverystringIf true then the discovery is done on a separate timer thread. Should be set to true when discovery is blocking and/or takes more than a few milliseconds
async_discovery_use_separate_thread_per_requeststringIf enabled, use a separate thread for every discovery request. Can be used with or without async_discovery
break_on_coord_rspstringReturn from the discovery phase as soon as we have 1 coordinator response
discovery_rsp_expiry_timestringExpiry time of discovery responses in ms
dns_addressstringDNS Address. This property will be assembled with the 'dns://' prefix. If this is specified, A records will be resolved through DnsContext.
dns_context_factorystringDNS Context Factory. Used when DNS_PING is configured to use SRV record types and when using A types with a specific dns_address.
dns_querystringA comma-separated list of DNS queries for fetching members
dns_record_typestringDNS Record type
ergonomicsstringEnables ergonomics: dynamically find the best values for properties at runtime
idstringGive the protocol a different ID if needed so we can have multiple instances of it in the same stack
levelstringlogger level (see javadocs)
max_members_in_discovery_requeststringMax size of the member list shipped with a discovery request. If we have more, the mbrs field in the discovery request header is nulled and members return the entire membership, not individual members
max_rank_to_replystringThe max rank of this member to respond to discovery requests, e.g. if max_rank_to_reply=2 in {A,B,C,D,E}, only A (rank 1) and B (rank 2) will reply. A value <= 0 means everybody will reply. This attribute is ignored if TP.use_ip_addrs is false.
num_discovery_runsstringThe number of times a discovery process is executed when finding initial members (https://issues.redhat.com/browse/JGRP-2317)
policiesstring
probe_transport_portsstringFor SRV records returned by the DNS query, the non-0 ports returned by DNS areused. If this attribute is true, then the transport ports will also be used. Ignored for A records.
return_entire_cachestringWhether or not to return the entire logical-physical address cache mappings on a discovery request, or not.
send_cache_on_joinstringWhen a new node joins, and we have a static discovery protocol (TCPPING), then send the contents of the discovery cache to new and existing members if true (and we're the coord). Addresses JGRP-1903
stagger_timeoutstringIf greater than 0, we'll wait a random number of milliseconds in range [0..stagger_timeout] before sending a discovery response. This prevents traffic spikes in large clusters when everyone sends their discovery response at the same time
statsstringDetermines whether to collect statistics (and expose them via JMX). Default is true
use_disk_cachestringIf a persistent disk cache (PDC) is present, combine the discovery results with the contents of the disk cache before returning the results

threads?

Defines the threading subsystem.

The threading subsystem, used to declare manageable thread pools and resources.

thread-factory*

A thread factory (implementing java.util.concurrent.ThreadFactory). The "name" attribute is the bean name of the created thread factory. The optional "priority" attribute may be used to specify the thread priority of created threads. The optional "group-name" attribute specifies the name of a the thread group to create for this thread factory. The "thread-name-pattern" is the template used to create names for threads. The following patterns may be used: %% - emit a percent sign %t - emit the per-factory thread sequence number %g - emit the global thread sequence number %f - emit the factory sequence number %i - emit the thread ID %G - emit the thread group name
NameTypeDefaultDescription
namestring
group-namestring
thread-name-patternstring
prioritystring

blocking-bounded-queue-thread-pool*

A thread pool executor with a bounded queue which can run blocking operations. Such a thread pool has a core size and a queue with an upper bound. When a task is submitted, if the number of running threads is less than the core size, a new thread is created. Otherwise, the task is placed in queue. If too many tasks are allowed to be submitted to this type of executor, an out of memory condition may occur. If the queue is too small it may cause a CacheBackpressureFullException to be thrown if a non-blocking thread cannot submit a task. The "name" attribute is the bean name of the created executor. The "max-threads" attribute must be used to specify the maximum thread pool size. The "core-threads" attribute defines the number of threads to keep in the pool. The "keepalive-time" attribute may used to specify the amount of time that pool threads should be kept running when idle; if not specified, threads will run until the executor is shut down. The "thread-factory" element specifies the bean name of a specific thread factory to use to create worker threads.
NameTypeDefaultDescription
namestring
thread-factorystring
max-threadsint
core-threadsint
keepalive-timestring
queue-lengthstring

non-blocking-bounded-queue-thread-pool*

A thread pool executor with a bounded queue which should only run non blocking operations. Such a thread pool has a core size and a queue with an upper bound. When a task is submitted, if the number of running threads is less than the core size, a new thread is created. Otherwise, the task is placed in queue. If too many tasks are allowed to be submitted to this type of executor, an out of memory condition may occur. If the queue is too small it may cause blocking thread pool tasks to build up waiting to submit. The "name" attribute is the bean name of the created executor. The "max-threads" attribute must be used to specify the maximum thread pool size. The "core-threads" attribute defines the number of threads to keep in the pool. The "keepalive-time" attribute may used to specify the amount of time that pool threads should be kept running when idle; if not specified, threads will run until the executor is shut down. The "thread-factory" element specifies the bean name of a specific thread factory to use to create worker threads.
NameTypeDefaultDescription
namestring
thread-factorystring
max-threadsint
core-threadsint
keepalive-timestring
queue-lengthstring

cached-thread-pool*

A thread pool executor that creates new threads as needed, but will reuse previously constructed threads when they are available. The "name" attribute is the bean name of the created executor. The "thread-factory" element specifies the bean name of a specific thread factory to use to create worker threads.
NameTypeDefaultDescription
namestring
thread-factorystring

scheduled-thread-pool*

A thread pool executor that creates a single-threaded executor that can schedule commands to run after a given delay, or to execute periodically. The "name" attribute is the bean name of the created executor. The "thread-factory" element specifies the bean name of a specific thread factory to use to create worker threads.
NameTypeDefaultDescription
namestring
thread-factorystring

cache-container

Defines an embedded cache container.

NameTypeDefaultDescription
namestringUniquely identifies this cache container.
jndi-namestringUnused XML attribute
default-cachestringIndicates the default cache for this cache container
zero-capacity-nodebooleanfalseIf 'true' then no data is stored in this node. Defaults to 'false'.
startFIXMEUnused XML attribute
listener-executorstringDefines the executor used for asynchronous cache listener notifications.
expiration-executorstringDefines the scheduled executor used for expirations.
non-blocking-executorstringThe name of the executor used for non-blocking operations. Must be non-blocking and must have a queue.
blocking-executorstringThe name of the executor used for blocking operations. Must be blocking and must have a queue.
modulestringorg.jboss.as.clustering.infinispanUnused XML attribute
statisticsbooleanfalseDetermines whether or not the cache container should collect statistics. Keep disabled for optimal performance.
shutdown-hook
DEFAULTUse the default shutdown hook behaviour (REGISTER)
REGISTERRegister a shutdown hook
DONT_REGISTERDon't register a shutdown hook
Behavior of the JVM shutdown hook registered by the cache

transport?

Overrides the transport characteristics for this cache container.

NameTypeDefaultDescription
stackstringDefines the jgroups stack used by the transport.
clusterstringDefines the name for the underlying group communication cluster.
lock-timeoutlong240000 Infinispan uses a distributed lock to maintain a coherent transaction log during state transfer or rehashing, which means that only one cache can be doing state transfer or rehashing at the same time. This constraint is in place because more than one cache could be involved in a transaction. This timeout controls the time to wait to acquire a distributed lock.
node-namestring Specifies the name of the current node. Defaults to a combination of the host name and a random number to differentiate between multiple nodes on the same host.
machinestring Specifies the ID of the machine where the node runs. When a single physical machine hosts multiple JVM instances, the machine ID ensures that data is distributed across different physical hosts.
rackstring Specifies the ID of the rack where the node runs. The rack ID ensures that the copies of data are stored on different rack than the original data.
sitestring The ID of the site where the node runs.In clusters with nodes in multiple physical locations site ID ensures that backup copies of data are stored across different locations.
initial-cluster-sizeint The minimum number of nodes that must join the cluster for the cache manager to start
initial-cluster-timeoutlong The amount of time in milliseconds to wait for a cluster with sufficient nodes to form. Defaults to 60000
raft-membersstring The list of raft members separated by space.

property*

A transport property with name and value to be passed to the Transport instance.

security?

Configures security for this cache container.

NameTypeDefaultDescription
cache-sizeint The ACL cache size. The default is 1000 entries. A value of 0 disables the cache.
cache-timeoutlong The ACL cache timeout in milliseconds. The default is 300000 (5 minutes). A value of 0 disables the cache.

authorization?

Configures the global authorization role to permission mapping. The presence of this element in the configuration implicitly enables authorization.

NameTypeDefaultDescription
audit-loggerstring Class of the audit logger.

cluster-permission-mapper

Stores role to permission mappings in the cluster registry. This role mapper is enabled by default in the server configuration.

custom-permission-mapper

Configures a custom permission mapper implementation.

NameTypeDefaultDescription
classstring Specifies the class name of a custom implementation that maps roles to permissions.

identity-role-mapper

Uses the identity role mapper where principal names are converted as-is into role names.

common-name-role-mapper

Uses the common name role mapper which assumes principal names are in Distinguished Name format and extracts the Common Name to use as a role.

cluster-role-mapper

Stores the principal to role mappings in the cluster registry. This role mapper is enabled by default in the server configuration.

custom-role-mapper

Configures a custom role mapper.

NameTypeDefaultDescription
classstring Specifies the class name of a custom principal to role mapper implementation.

roles?

role*

Defines a new role name and assigns permissions to it.

NameTypeDefaultDescription
namestring Defines the name of the role.
permissions
LIFECYCLE Allows control of a cache's lifecycle (i.e. starting and stopping a cache)
READ Allows reading data from a cache
WRITE Allows writing data to a cache
EXEC Allows performing task execution (e.g. distributed executors, map/reduce) on a cache
LISTEN Allows attaching listeners to a cache
BULK_READ Allows bulk-read operations (e.g. obtaining all the keys in a cache)
BULK_WRITE Allows bulk-write operations (e.g. clearing a cache)
ADMIN Allows performing "administrative" operations on a cache
ALL Aggregate permission which implies all of the others
ALL_READ Aggregate permission which implies all read permissions (READ and BULK_READ)
ALL_WRITE Aggregate permission which implies all write permissions (WRITE and BULK_WRITE)
NONE Permission which means no permissions
Defines the list of permissions for the role.

serialization?

Specifies how data serialization will be performed by the cache container.

NameTypeDefaultDescription
marshallerstring Fully qualified name of the marshaller to use. It must implement org.infinispan.marshall.StreamingMarshaller
versionstring71 Largest allowable version to use when marshalling internal state. Set this to the lowest version cache instance in your cluster to ensure compatibility of communications. However, setting this too low will mean you lose out on the benefit of improvements in newer versions of the marshaller.

advanced-externalizer*

Deprecated since 10.0. Please utilise ProtoStream based marshalling for your Java objects by configuring one or more context-initializer elements. Alternatively, it's possible to configure a custom org.infinispan.commons.marshall.Marshaller implementation for user types, via the "marshaller" attribute. AdvancedExternalizer implementations allow users to have fine grained control over how Java objects are serialized. Providing smaller payloads than traditional Serialization or Externalizer implementations by writing a class ID value instead of the classes FQN.

NameTypeDefaultDescription
classstring Class of the custom externalizer
idint Id of the custom externalizer

context-initializer*

SerializationContextInitializer implementation which is used to initialize a ProtoStream based marshaller for user types. If no <context-initializer> elements are present then the java.util.ServiceLoader mechanism will be used to automatically discover all SerializationContextInitializer implementations present in classpath and load them.

NameTypeDefaultDescription
classstring Class of the SerializationContextInitializer implementation

allow-list?

Enables individual classes or regular expressions to be added to the EmbeddedCacheManager allow list.

class*

FQN of the class to be added to the allowlist.

regex*

Regex pattern used to determine if a class is a member of the allowlist.

metrics?

Configures metrics.

NameTypeDefaultDescription
gaugesbooleantrue Exports gauge metrics. Gauges are enabled by default but you must enable statistics so that they are exported.
histogramsbooleanfalse Exports histogram metrics. Histograms are not enabled by default because they require additional computation. If you enable histograms you must also enable statistics so that they are exported.
prefixstring Specifies a global name prefix for metrics.
names-as-tagsbooleanfalse Put the cache manager and cache name in tags rather than include them in the metric name.
accurate-sizebooleanfalse Enables accurate size computation for numberOfEntries statistics. Note that this doesn't affect invocations of Cache#size() method.

jmx?

Enables and configures JMX monitoring and management.

NameTypeDefaultDescription
domainstringorg.infinispan If JMX statistics are enabled then all 'published' JMX objects appear under this domain. Optional, if not specified it defaults to "org.infinispan".
mbean-server-lookupstring Class that attempts to locate a JMX MBean server to bind to. Defaults to the platform MBean server.
enabledbooleanfalse Enables exporting of JMX MBeans.

property*

Specifies a JMX property with a name and value that is passed to the MBean Server lookup instance.

global-state?

Defines the global state persistence configuration. If this element is not present, global state persistence will be disabled.

persistent-location?

Defines the filesystem path where persistent state data which needs to survive container restarts should be stored. The data stored at this location is required for graceful shutdown and restore. This path must NOT be shared among multiple instances. Defaults to the user.dir system property which usually is where the application was started. This value should be overridden to a more appropriate location.

NameTypeDefaultDescription
relative-tostringjboss.server.data.dirA property name whose value will be used as the root path for storing global state
pathstring Defines the path where global state for this cache-container will be stored.

shared-persistent-location?

Defines the filesystem path where shared persistent state data which needs to survive container restarts should be stored. This path can be safely shared among multiple instances. Defaults to the user.dir system property which usually is where the application was started. This value should be overridden to a more appropriate location.

NameTypeDefaultDescription
relative-tostringjboss.server.data.dirA property name whose value will be used as the root path for storing global state
pathstring Defines the path where global state for this cache-container will be stored.

temporary-location?

Defines the filesystem path where temporary state should be stored. Defaults to the value of the java.io.tmpdir system property.

NameTypeDefaultDescription
relative-tostringjboss.server.data.dirA property name whose value will be used as the root path for storing global state
pathstring Defines the path where global state for this cache-container will be stored.

immutable-configuration-storage

An immutable configuration storage.

volatile-configuration-storage

A non-persistent configuration storage.

overlay-configuration-storage

A persistent configuration storage which saves runtime configurations to the persistent-location.

managed-configuration-storage

A persistent configuration storage for managed environments. This doesn't work in embedded mode.

custom-configuration-storage

Uses a custom configuration storage implementation.

NameTypeDefaultDescription
classstring Class of the custom configuration storage implementation.

local-cache

Defines a LOCAL mode cache.

NameTypeDefaultDescription
simple-cacheFIXMEfalse This cache will be using optimized (faster) implementation that does not support transactions/invocation batching, persistence, custom interceptors, indexing, store-as-binary or transcoding. Also, this type of cache does not support Map-Reduce jobs or Distributed Executor framework.
NameTypeDefaultDescription
nameIDUniquely identifies this cache within its cache container.
configurationIDREFThe name of the cache configuration which this configuration inherits from.
statisticsbooleanfalseDetermines whether or not the cache should collect statistics. Keep disabled for optimal performance.
statistics-availablebooleantrueIf set to false, statistics gathering cannot be enabled during runtime. Keep disabled for optimal performance.
unreliable-return-valuesbooleanfalse Specifies whether Infinispan is allowed to disregard the Map contract when providing return values for org.infinispan.Cache#put(Object, Object) and org.infinispan.Cache#remove(Object) methods.

backups?

Defines backup locations for cache data and modifies state transfer properties.

NameTypeDefaultDescription
merge-policyDEFAULT Specifies the fully qualified name of a class that implements the XSiteEntryMergePolicy interface or any of the alias. Use if for ASYNC strategy backup.
max-cleanup-delaypositiveInteger30000 Specifies the maximum delay, in milliseconds, between which tombstone cleanup tasks run. This attribute applies to the asynchronous backup strategy only.
tombstone-map-sizepositiveInteger512000 Specifies the target number of tombstones to store. If the current size of the tombstone map is greater than the target size, then cleanup tasks run more frequently. If the current size of the tombstone map is less than the target size, then cleanup tasks run less frequently. This attribute applies to the asynchronous backup strategy only.

backup*

Configures a remote site as a backup location for cache data.

NameTypeDefaultDescription
sitestring Names the remote site to which the cache backs up data.
strategy
ASYNC Enables asynchronous mode.
SYNC Enables synchronous mode.
ASYNC Sets the strategy for backing up to a remote site.
failure-policy
IGNORE Ignore failed backup operations and write to the local cache.
WARN Log exceptions when backup operations fail and write to the local cache.
FAIL Throw exceptions when backup operations fail and attempt to stop writes to the local cache.
CUSTOM Use a custom failure policy. Requires the "failure-policy-class" attribute.
WARN Controls how local writes to caches are handled if synchronous backup operations fail.
timeoutlong15000 Specifies timeout, in milliseconds, for synchronous and asynchronous backup operations.
two-phase-commitbooleanfalse Enables two-phase commits for optimistic transactional caches with the synchronous backup strategy only.
failure-policy-classstring Specifies the fully qualified name of a class that implements the CustomFailurePolicy interface. Use if failure-policy="CUSTOM".

take-offline?

Specifies the number of failures that can occur before backup locations go offline.

NameTypeDefaultDescription
after-failuresint0 Sets the number of consecutive failures that can occur for backup operations before sites go offline. Specify a negative or zero value to ignore this attribute and use minimum wait time only ("min-wait").
min-waitlong0 Sets the minimum time to wait, in milliseconds, before sites go offline when backup operations fail. If subsequent operations are successful, the minimum wait time is reset. If you set "after-failures", sites go offline when the wait time is reached and the number of failures occur.

state-transfer?

Modifies state transfer operations.

NameTypeDefaultDescription
chunk-sizeint512 Specifies how many cache entries are batched in each transfer request.
timeoutlong1200000 The time (in milliseconds) to wait for the backup site acknowledge the state chunk received and applied. Default value is 20 min.
max-retriesint30 Sets the maximum number of retry attempts for push state failures. Specify a value of 0 (zero) to disable retry attempts. The default value is 30.
wait-timelong2000 Sets the amount of time, in milliseconds, to wait between retry attempts for push state failures. You must specify a value of 1 or more. The default value is 2000.
mode
MANUAL Users must bring backup locations online and initiate state transfer between remote sites.
AUTO Backup locations that use the asynchronous backup strategy can automatically come back online. State transfer operations begin when the remote site connections are stable.
MANUAL Controls whether cross-site state transfer happens manually on user action, which is the default, or automatically when backup locations come online.

backup-for?

Defines the local cache as a backup for a remote cache with a different name.

NameTypeDefaultDescription
remote-cachestring Specifies the name of the remote cache that uses the local cache as a backup.
remote-sitestring Specifies the name of the remote site that backs up data to the local cache.

encoding?

The cache encoding configuration.

Defines content type and encoding for keys and values of the cache.
NameTypeDefaultDescription
media-typestring The media type for both keys and values. When present, takes precedence over the individual configurations for keys and values.

key?

Describes the content-type and encoding.
NameTypeDefaultDescription
media-typestring

value?

Describes the content-type and encoding.
NameTypeDefaultDescription
media-typestring

locking?

The locking configuration of the cache.

NameTypeDefaultDescription
isolation
NONENo locking isolation will be performed. This is only valid in local mode. In clustered mode, READ_COMMITTED will be used instead.
READ_UNCOMMITTEDUnsupported. Actually configures READ_COMMITTED
READ_COMMITTEDRead committed is an isolation level that guarantees that any data read is committed at the moment it is read. However, depending on the outcome of other transactions, successive reads may return different results
REPEATABLE_READRepeatable read is an isolation level that guarantees that any data read is committed at the moment it is read and that, within a transaction, successive reads will always return the same data.
SERIALIZABLEUnsupported. Actually configures REPEATABLE_READ
REPEATABLE_READSets the cache locking isolation level. Infinispan only supports READ_COMMITTED or REPEATABLE_READ isolation level.
stripingbooleanfalseIf true, a pool of shared locks is maintained for all entries that need to be locked. Otherwise, a lock is created per entry in the cache. Lock striping helps control memory footprint but may reduce concurrency in the system.
acquire-timeoutlong10000Maximum time to attempt a particular lock acquisition.
concurrency-levelint32Concurrency level for lock containers. Adjust this value according to the number of concurrent threads interacting with Infinispan.

transaction?

The cache transaction configuration.

NameTypeDefaultDescription
mode
NONECache will not enlist within transactions.
BATCHUses batching to group cache operations together.
NON_XACache will enlist within transactions as a javax.transaction.Synchronization
NON_DURABLE_XACache will enlist within transactions as a javax.transaction.xa.XAResource, without recovery.
FULL_XACache will enlist within transactions as a javax.transaction.xa.XAResource, with recovery.
NONESets the cache transaction mode to one of NONE, BATCH, NON_XA, NON_DURABLE_XA, FULL_XA.
stop-timeoutlong30000If there are any ongoing transactions when a cache is stopped, Infinispan waits for ongoing remote and local transactions to finish. The amount of time to wait for is defined by the cache stop timeout.
locking
OPTIMISTICEnables Optimistic locking.
PESSIMISTICEnables Pessimistic locking.
OPTIMISTICThe locking mode for this cache, one of OPTIMISTIC or PESSIMISTIC.
transaction-manager-lookupstringorg.infinispan.transaction.lookup.GenericTransactionManagerLookup Configure Transaction manager lookup directly using an instance of TransactionManagerLookup. Calling this method marks the cache as transactional.
complete-timeoutlong60000 The duration (millis) in which to keep information about the completion of a transaction. Defaults to 60000.
reaper-intervallong30000 The time interval (millis) at which the thread that cleans up transaction completion information kicks in. Defaults to 30000.
auto-commitbooleantrue If the cache is transactional and transactionAutoCommit is enabled then for single operation transactions the user doesn't need to manually start a transaction, but a transactions is injected by the system. Defaults to true.
recovery-cachestring__recoveryInfoCacheName__ Sets the name of the cache where recovery related information is held. The cache's default name is "__recoveryInfoCacheName__"
notificationsbooleantrue Enables or disables triggering transactional notifications on cache listeners. By default is enabled.

expiration?

The cache expiration configuration.

NameTypeDefaultDescription
max-idlelong-1 Specifies the maximum amount of time, in milliseconds, that cache entries can remain idle. If no operations are performed on entries within the maximum idle time, the entries expire across the cluster. A value of 0 or -1 disables expiration.
lifespanlong-1 Specifies the maximum amount of time, in milliseconds, that cache entries can exist. After reaching their lifespan, cache entries expire across the cluster. A value of 0 or -1 disables expiration.
intervallong60000 Specifies the interval, in milliseconds, between expiration runs. A value of 0 or -1 disables the expiration reaper.
touch
SYNCDelays read operations until the other owners confirm that the timestamp for the entry is updated.
ASYNC Sends touch commands to other owners without waiting for confirmation. This mode allows read operations to return the value of a key even if another node has started expiring it. When that occurs, the read operation does not extend the lifespan of the key.
SYNC Controls how timestamps get updated for entries in clustered caches with maximum idle expiration. The default value is SYNC. This attribute applies only to caches that use synchronous mode. Timestamps are updated asynchronously for caches that use asynchronous mode.

store-as-binary?

Configures the cache to store data in binary format.

Controls whether when stored in memory, keys and values are stored as references to their original objects, or in a serialized, binary format. There are benefits to both approaches, but often if used in a clustered mode, storing objects as binary means that the cost of serialization happens early on, and can be amortized. Further, deserialization costs are incurred lazily which improves throughput. It is possible to control this on a fine-grained basis: you can choose to just store keys or values as binary, or both. DEPRECATED: please use memory element instead
NameTypeDefaultDescription
keysboolean Specify whether keys are stored as binary or not. Enabled by default if the "enabled" attribute is set to true.
valuesboolean Specify whether values are stored as binary or not. Enabled by default if the "enabled" attribute is set to true.

persistence?

Configures the persistence layer for caches.

NameTypeDefaultDescription
passivationbooleanfalse Enables passivation so that data is written to cache stores only if it is evicted from memory. Subsequent requests for passivated entries restore them to memory and remove them from persistent storage. If you do not enable passivation, writes to entries in memory result in writes to cache stores.
connection-attemptsint10 Sets the maximum number of attempts to start each configured `CacheWriter` or `CacheLoader`. An exception is thrown and the cache does not start if the number of connection attempts exceeds the maximum.
connection-intervalint50 Specifies the time, in milliseconds, to wait between connection attempts on startup. A negative or zero value means no wait between connection attempts.
availability-intervalint1000 Specifies the time, in milliseconds, between availability checks to determine if the PersistenceManager is available. In other words, this interval sets how often stores and loaders are polled via their `org.infinispan.persistence.spi.CacheWriter#isAvailable` or `org.infinispan.persistence.spi.CacheLoader#isAvailable` implementation. If a single store or loader is not available, an exception is thrown during cache operations.

cluster-loader

Defines a cluster cache loader.

NameTypeDefaultDescription
remote-timeoutlong15000The timeout when performing remote calls.
NameTypeDefaultDescription
namestringUnused XML attribute.
sharedbooleanfalse Determines if a cache loader is shared between cache instances. Values are true / false (default). This property prevents duplicate writes of data to the cache loader by different cache instances. An example is where all cache instances in a cluster use the same JDBC settings for the same remote, shared database. If true, only the nodes where modifications originate write to the cache store. If false, each cache reacts to potential remote updates by storing the data to the cache store.
preloadbooleanfalse Pre-loads data into memory from the cache loader when the cache starts. Values are true / false (default). This property is useful when data in the cache loader is required immediately after startup to prevent delays with cache operations when the data is loaded lazily. This property can provide a "warm cache" on startup but it impacts performance because it affects start time. Pre-loading data is done locally, so any data loaded is stored locally in the node only. Pre-loaded data is not replicated or distributed. Likewise, data is pre-loaded only up to the maximum configured number of entries in eviction.

property*

A cache loader property with name and value.

store

Defines a custom cache store.

NameTypeDefaultDescription
classstringDefines the class name of a cache store that implements either `CacheLoader`, `CacheWriter`, or both.
NameTypeDefaultDescription
sharedbooleanfalseThis setting should be set to true when multiple cache instances share the same cache store (e.g., multiple nodes in a cluster using a JDBC-based CacheStore pointing to the same, shared database.) Setting this to true avoids multiple cache instances writing the same modification multiple times. If enabled, only the node where the modification originated will write to the cache store. If disabled, each individual cache reacts to a potential remote update by storing the data to the cache store.
transactionalbooleanfalseThis setting should be set to true when the underlying cache store supports transactions and it is desirable for the underlying store and the cache to remain synchronized. With this enabled any Exceptions thrown whilst writing to the underlying store will result in both the store's and cache's transactions rollingback.
preloadbooleanfalseIf true, when the cache starts, data stored in the cache store will be pre-loaded into memory. This is particularly useful when data in the cache store will be needed immediately after startup and you want to avoid cache operations being delayed as a result of loading this data lazily. Can be used to provide a 'warm-cache' on startup, however there is a performance penalty as startup time is affected by this process. Likewise in some cases you cannot pre-load data in caches stores, such as when using shared remote stores.
purgebooleanfalse Empties the specified cache loader at startup. Values are true / false (default). This property takes effect only if read-only is false.
read-onlybooleanfalse Prevents data from being persisted to cache stores. Values are true / false (default). If true, cache stores load entries only. Any modifications to data in the cache do not apply to cache stores.
write-onlybooleanfalse Prevents data from being loaded from cache stores. Values are true / false (default). If true, cache stores write entries only. Any retrievals of data in the cache do not read from the cache store.
max-batch-sizeint100 Sets the maximum size of a batch to insert or delete from the cache store. If the value is less than one, no upper limit applies to the number of operations in a batch.
segmentedbooleantrue Configures cache stores to store data in hash space segments, with the cache's "segments" attribute defining the number of segments.

write-behind?

Configures cache stores as write-behind instead of write-through.

NameTypeDefaultDescription
modification-queue-sizeint1024 Specifies the maximum number of entries in the asynchronous modification queue. When the queue is full, write-through mode is used until the queue can accept new entries.
thread-pool-sizeint1 Specifies the number of threads to apply modifications to the cache store.
fail-silentlybooleanfalse Controls how asynchronous write operations take place when cache stores become unavailable. If "true", asynchronous write operations that fail are re-attempted with the number of times specified in the "connection-attempts" parameter. If all attempts fail, errors are ignored and write operations are not executed on the cache store. If "false", asynchronous write operations that fail are re-attempted when the underlying store becomes available. If the modification queue becomes full before the underlying store becomes available, an error is thrown on all future write operations to the store until the modification queue is flushed. The modification queue is not persisted. If the underlying store does not become available before the asynchronous store is stopped, queued modifications are lost.

property*

Defines a cache store property with name and value.

file-store

Defines a filesystem-based cache store.

NameTypeDefaultDescription
max-entriesint Deprecated since 13.0 which ignores the property. Specifies the maximum number of entries that the file store can hold. To increase the speed of lookups, Single File cache stores index keys and their locations in the file. To avoid excessive memory usage, you can configure the maximum number of entries so that entries are removed permanently from both memory and the cache store when the maximum is exceeded. However, this can lead to data loss. You should only set a maximum number of entries if data can be recomputed or retrieved from an authoritative data store. By default, the value is `-1` which means that there is no maximum number of entries. Deprecated since 13.0, will be removed in 16.0.
pathstring Specifies a filesystem directory for data. The value can be a relative or absolute path. Relative paths are created relative to the configured global persistent location. Absolute paths must be subdirectories of the global persistent location, otherwise an exception is thrown.
open-files-limitint1000 Max number of data and index files opened for reading (current log file and compaction output are not included here - always uses one each). Index files will use 1/10th of list limit with a minimum of 1 and a maximum equal to the number of cache segments.
compaction-thresholddouble0.5 If amount of unused space in some data file gets above this threshold, the file is compacted - entries from that file are copied to a new file and the old file is deleted.

index?

Configure where and how should be the index stored.
NameTypeDefaultDescription
pathstring A location where the store keeps index - this does not have be persistent across restarts, and SSD storage is recommended (the index is accessed randomly).
segmentsint3 Deprecated since 15.0 which ignores the property. This value is ignored as we create an index file per cache segment instead.
max-queue-lengthint1000 Max number of entry writes that are waiting to be written to the index, per index segment.
max-node-sizeint4096 Max size of node (continuous block on filesystem used in index implementation), in bytes.
min-node-sizeint0 If the size of node (continuous block on filesystem used in index implementation) drops below this threshold, the node will try to balance its size with some neighbour node, possibly causing join of multiple nodes.

data?

Configure where and how should be the entries stored - this is the persistent location.
NameTypeDefaultDescription
pathstring A location on disk where the store writes entries. Files are written sequentially, reads are random.
max-file-sizeint16777216 Max size of single file with entries, in bytes.
sync-writesbooleanfalse If true, the write is confirmed only after the entry is fsynced on disk.
NameTypeDefaultDescription
sharedbooleanfalseThis setting should be set to true when multiple cache instances share the same cache store (e.g., multiple nodes in a cluster using a JDBC-based CacheStore pointing to the same, shared database.) Setting this to true avoids multiple cache instances writing the same modification multiple times. If enabled, only the node where the modification originated will write to the cache store. If disabled, each individual cache reacts to a potential remote update by storing the data to the cache store.
transactionalbooleanfalseThis setting should be set to true when the underlying cache store supports transactions and it is desirable for the underlying store and the cache to remain synchronized. With this enabled any Exceptions thrown whilst writing to the underlying store will result in both the store's and cache's transactions rollingback.
preloadbooleanfalseIf true, when the cache starts, data stored in the cache store will be pre-loaded into memory. This is particularly useful when data in the cache store will be needed immediately after startup and you want to avoid cache operations being delayed as a result of loading this data lazily. Can be used to provide a 'warm-cache' on startup, however there is a performance penalty as startup time is affected by this process. Likewise in some cases you cannot pre-load data in caches stores, such as when using shared remote stores.
purgebooleanfalse Empties the specified cache loader at startup. Values are true / false (default). This property takes effect only if read-only is false.
read-onlybooleanfalse Prevents data from being persisted to cache stores. Values are true / false (default). If true, cache stores load entries only. Any modifications to data in the cache do not apply to cache stores.
write-onlybooleanfalse Prevents data from being loaded from cache stores. Values are true / false (default). If true, cache stores write entries only. Any retrievals of data in the cache do not read from the cache store.
max-batch-sizeint100 Sets the maximum size of a batch to insert or delete from the cache store. If the value is less than one, no upper limit applies to the number of operations in a batch.
segmentedbooleantrue Configures cache stores to store data in hash space segments, with the cache's "segments" attribute defining the number of segments.

write-behind?

Configures cache stores as write-behind instead of write-through.

NameTypeDefaultDescription
modification-queue-sizeint1024 Specifies the maximum number of entries in the asynchronous modification queue. When the queue is full, write-through mode is used until the queue can accept new entries.
thread-pool-sizeint1 Specifies the number of threads to apply modifications to the cache store.
fail-silentlybooleanfalse Controls how asynchronous write operations take place when cache stores become unavailable. If "true", asynchronous write operations that fail are re-attempted with the number of times specified in the "connection-attempts" parameter. If all attempts fail, errors are ignored and write operations are not executed on the cache store. If "false", asynchronous write operations that fail are re-attempted when the underlying store becomes available. If the modification queue becomes full before the underlying store becomes available, an error is thrown on all future write operations to the store until the modification queue is flushed. The modification queue is not persisted. If the underlying store does not become available before the asynchronous store is stopped, queued modifications are lost.

property*

Defines a cache store property with name and value.

single-file-store

Deprecated since 13.0. Defines a filesystem-based cache store that stores its elements in a single file.

NameTypeDefaultDescription
max-entriesint Specifies the maximum number of entries that the file store can hold. To increase the speed of lookups, Single File cache stores index keys and their locations in the file. To avoid excessive memory usage, you can configure the maximum number of entries so that entries are removed permanently from both memory and the cache store when the maximum is exceeded. However, this can lead to data loss. You should only set a maximum number of entries if data can be recomputed or retrieved from an authoritative data store. By default, the value is `-1` which means that there is no maximum number of entries.
pathstring Specifies a filesystem directory for data. The value can be a relative or absolute path. Relative paths are created relative to the configured global persistent location. Absolute paths must be subdirectories of the global persistent location, otherwise an exception is thrown.
NameTypeDefaultDescription
sharedbooleanfalseThis setting should be set to true when multiple cache instances share the same cache store (e.g., multiple nodes in a cluster using a JDBC-based CacheStore pointing to the same, shared database.) Setting this to true avoids multiple cache instances writing the same modification multiple times. If enabled, only the node where the modification originated will write to the cache store. If disabled, each individual cache reacts to a potential remote update by storing the data to the cache store.
transactionalbooleanfalseThis setting should be set to true when the underlying cache store supports transactions and it is desirable for the underlying store and the cache to remain synchronized. With this enabled any Exceptions thrown whilst writing to the underlying store will result in both the store's and cache's transactions rollingback.
preloadbooleanfalseIf true, when the cache starts, data stored in the cache store will be pre-loaded into memory. This is particularly useful when data in the cache store will be needed immediately after startup and you want to avoid cache operations being delayed as a result of loading this data lazily. Can be used to provide a 'warm-cache' on startup, however there is a performance penalty as startup time is affected by this process. Likewise in some cases you cannot pre-load data in caches stores, such as when using shared remote stores.
purgebooleanfalse Empties the specified cache loader at startup. Values are true / false (default). This property takes effect only if read-only is false.
read-onlybooleanfalse Prevents data from being persisted to cache stores. Values are true / false (default). If true, cache stores load entries only. Any modifications to data in the cache do not apply to cache stores.
write-onlybooleanfalse Prevents data from being loaded from cache stores. Values are true / false (default). If true, cache stores write entries only. Any retrievals of data in the cache do not read from the cache store.
max-batch-sizeint100 Sets the maximum size of a batch to insert or delete from the cache store. If the value is less than one, no upper limit applies to the number of operations in a batch.
segmentedbooleantrue Configures cache stores to store data in hash space segments, with the cache's "segments" attribute defining the number of segments.

write-behind?

Configures cache stores as write-behind instead of write-through.

NameTypeDefaultDescription
modification-queue-sizeint1024 Specifies the maximum number of entries in the asynchronous modification queue. When the queue is full, write-through mode is used until the queue can accept new entries.
thread-pool-sizeint1 Specifies the number of threads to apply modifications to the cache store.
fail-silentlybooleanfalse Controls how asynchronous write operations take place when cache stores become unavailable. If "true", asynchronous write operations that fail are re-attempted with the number of times specified in the "connection-attempts" parameter. If all attempts fail, errors are ignored and write operations are not executed on the cache store. If "false", asynchronous write operations that fail are re-attempted when the underlying store becomes available. If the modification queue becomes full before the underlying store becomes available, an error is thrown on all future write operations to the store until the modification queue is flushed. The modification queue is not persisted. If the underlying store does not become available before the asynchronous store is stopped, queued modifications are lost.

property*

Defines a cache store property with name and value.

memory?

Controls how the entries are stored in memory

NameTypeDefaultDescription
max-sizestring Defines the size of the data container in bytes. The default unit is B (bytes). You can optionally set one of the following units: KB (kilobytes), MB (megabytes), GB (gigabytes), TB (terabytes), KiB (kibibytes), MiB (mebibytes), GiB (gibibytes) and TiB (tebibytes). Eviction occurs when the approximate memory usage of the data container exceeds the maximum size.
max-countlong-1 Defines the size of the data container by number of entries. Eviction occurs after the container size exceeds the maximum count.
when-full
NONE Do not evict entries. If you define a size for the data container, you should specify either the REMOVE or EXCEPTION exiction strategy.
MANUAL Manually evict entries. This strategy is the same as NONE but does not log errors if you enable passivation without eviction.
REMOVE Automatically evict older entries to make space for new entries. By default REMOVE is always used when you define a size for the data container unless you configure the EXCEPTION strategy.
EXCEPTION Do not evict entries. If the data container reaches the maximum size, exceptions occur for requests to create new entries. You can use this eviction strategy only with transactional caches that use two phase commit.
UNORDEREDDeprecated. Activates REMOVE policy.
FIFODeprecated. Activates REMOVE policy.
LRUDeprecated. Activates REMOVE policy.
LIRSDeprecated. Activates REMOVE policy.
Specifies a strategy for evicting cache entries. Eviction always takes place when you define either the max-size or the max-count (but not both) for the data container. If no strategy is defined, but max-count or max-size is configured, REMOVE is used.
storage
HEAP Stores cache entries in JVM heap memory.
OFF_HEAP Stores cache entries as bytes in native memory outside the Java heap.
OBJECT Deprecated, only added in 11.0 to simplify the transition from the <object/> element. Please use HEAP instead.
BINARY Deprecated, only added in 11.0 to simplify the transition from the <binary/> element. Please use HEAP and set the encoding media type instead.
HEAP Defines the type of memory that the data container uses as storage.

query?

Defines query options for cache

NameTypeDefaultDescription
default-max-resultsinteger100 Limits the number of results returned by a query. Applies to indexed, non-indexed, and hybrid queries. Setting the default-max-results significantly improves performance of queries that don't have an explicit limit set.
hit-count-accuracyinteger10000 Limit the required accuracy of the hit count for the indexed queries to an upper-bound. Setting the hit-count-accuracy optimize the performance of queries targeting large data sets. For optimal results, set this value slightly above the expected hit count. If you do not require accurate hit counts, set it to a low value.

indexing?

Defines indexing options for cache

NameTypeDefaultDescription
enabledbooleanfalse Enables and disables cache indexing. Including the indexing element in cache configuration automatically enables indexing without the need to set the value of this attribute to "true". Indexing is also automatically enabled when the "auto-config" attribute is set to a value of "true".
storage
filesystemLocal filesystem index storage. This is the default.
local-heapJVM heap index storage, not persisted between restarts. Only suitable for small datasets with low concurrency.
filesystemSpecify index storage options.
startup-mode
purge Clears the index when the cache starts.
reindex Rebuilds the index when the cache starts.
auto Automatically triggers an indexing operation when the cache starts. If data is volatile and the index is persistent then the cache is cleared when it starts. If data is persistent and the index is volatile then the cache is reindexed when it starts.
none Cache startup does not trigger an indexing operation. This is the default value.
none Triggers an indexing process when the cache starts.
pathstring Specifies a filesystem path for the index when storage is 'filesystem'. The value can be a relative or absolute path. Relative paths are created relative to the configured global persistent location, or to the current working directory when global state is disabled. By default, the cache name is used as a relative path for index path. When setting a custom value, ensure that there are no conflicts between caches using the same indexed entities.
auto-configbooleanfalseDeprecated since 11.0, with no replacement. Whether or not to apply automatic index configuration based on cache type

index-reader?

Controls index reading parameters.

NameTypeDefaultDescription
refresh-intervallong0 Interval, in milliseconds, to reopen the index reader. By default, the index reader is refreshed on-demand during searches, if new entries were indexed since the last refresh. Configuring with a value larger than zero will make some queries results stale, but query throughput will increase substantially, specially in write heavy scenarios.

index-writer?

Controls index writing parameters

NameTypeDefaultDescription
commit-intervalint1000 Amount of time, in milliseconds, that index changes that are buffered in memory are flushed to the index storage and a commit is performed. Because operation is costly, small values should be avoided. The default is 1000 ms (1 second).
ram-buffer-sizeint32 Maximum amount of memory that can be used for buffering added entries and deletions before they are flushed to the index storage. Large values result in faster indexing but use more memory. For faster indexing performance you should set this attribute instead of `max-buffered-entries`. When used in combination with the `max-buffered-entries` attribute, a flush occurs for whichever event happens first.
max-buffered-entriesint32 Maximum number of entries that can be buffered in-memory before they are flushed to the index storage. Large values result in faster indexing but use more memory. When used in combination with the `ram-buffer-size` attribute, a flush occurs for whichever event happens first.
thread-pool-sizeint1 Number of threads that execute write operations to the index.
queue-countint1 Number of internal queues to use for each indexed type. Each queue holds a batch of modifications that is applied to the index and queues are processed in parallel. Increasing the number of queues will lead to an increase of indexing throughput, but only if the bottleneck is CPU. For optimum results, do not set a value for `queue-count` that is larger than the value for `thread-pool-size`.
queue-sizeint1000 Maximum number of elements each queue can hold. Increasing the `queue-size` value increases the amount of memory that is used during indexing operations. Setting a value that is too small can block indexing operations.
low-level-tracebooleanfalse Enables low-level trace information for indexing operations. Enabling this attribute substantially degrades performance. You should use this low-level tracing only as a last resource for troubleshooting.

index-merge?

Defines properties to control the merge of index segments. An index segment is not related to an Infinispan segment, but represents a section of index in the storage.

NameTypeDefaultDescription
max-entriesint Maximum number of entries that an index segment can have before merging. Segments with more than this number of entries are not merged. Smaller values perform better on frequently changing indexes, larger values provide better search performance if the index does not change often.
factorint Number of segments that are merged at once. With smaller values, merging happens more often, which uses more resources, but the total number of segments will be lower on average, increasing search performance. Larger values (greater than 10) are best for heavy writing scenarios.
min-sizeint Minimum target size of segments, in MB, for background merges. Segments smaller than this size are merged more aggressively. Setting a value that is too large might result in expensive merge operations, even though they are less frequent.
max-sizeint Maximum size of segments, in MB, for background merges. Segments larger than this size are never merged in the background. Settings this to a lower value helps reduce memory requirements and avoids some merging operations at the cost of optimal search speed. This attribute is ignored when forcefully merging an index and `max-forced-size` applies instead.
max-forced-sizeint maximum size of segments, in MB, for forced merges and overrides the `max-size` attribute. Set this to the same value as `max-size` or lower. However setting the value too low degrades search performance because documents are deleted.
calibrate-by-deletesboolean Whether the number of deleted entries in an index should be taken into account when counting the entries in the segment. Setting `false` will lead to more frequent merges caused by `max-entries`, but will more aggressively merge segments with many deleted documents, improving search performance.

key-transformers?

Defines the Transformers used to stringify keys for indexing with Lucene

key-transformer*

Defines the Transformer to use for the specified key class
NameTypeDefaultDescription
keystring
transformerstring

indexed-entities?

Defines the set of indexed type names (fully qualified). If values of types that are not included in this set are put in the cache they will not be indexed.

indexed-entity+

Indexed entity type name. Must be either a fully qualified Java class name or a protobuf type name.

property*

Property to pass on to the indexing system

custom-interceptors?

Deprecated since 10.0, will be removed without a replacement. Configures custom interceptors to be added to the cache.

interceptor*

Deprecated since 10.0, will be removed without a replacement.

NameTypeDefaultDescription
afterstringDictates that the custom interceptor appears immediately after the specified interceptor. If the specified interceptor is not found in the interceptor chain, a ConfigurationException will be thrown when the cache starts.
beforestringDictates that the custom interceptor appears immediately before the specified interceptor. If the specified interceptor is not found in the interceptor chain, a ConfigurationException will be thrown when the cache starts.
classstringA fully qualified class name of the new custom interceptor to add to the configuration.
indexintSpecifies a position in the interceptor chain to place the new interceptor. The index starts at 0 and goes up to the number of interceptors in a given configuration. A ConfigurationException is thrown if the index is less than 0 or greater than the maximum number of interceptors in the chain.
positionstringSpecifies a position where to place the new interceptor. Allowed values are FIRST, LAST, and OTHER_THAN_FIRST_OR_LAST

property?

security?

Configures cache-level security.

authorization?

Configures authorization for this cache.

NameTypeDefaultDescription
enabledbooleanfalse Enables authorization checks for this cache. Defaults to true if the authorization element is present.
roles Sets the valid roles required to access this cache.

local-cache-configuration

Defines a LOCAL mode cache configuration.

NameTypeDefaultDescription
simple-cacheFIXMEfalse This cache will be using optimized (faster) implementation that does not support transactions/invocation batching, persistence, custom interceptors, indexing, store-as-binary or transcoding. Also, this type of cache does not support Map-Reduce jobs or Distributed Executor framework.
NameTypeDefaultDescription
nameIDUniquely identifies this cache within its cache container.
configurationIDREFThe name of the cache configuration which this configuration inherits from.
statisticsbooleanfalseDetermines whether or not the cache should collect statistics. Keep disabled for optimal performance.
statistics-availablebooleantrueIf set to false, statistics gathering cannot be enabled during runtime. Keep disabled for optimal performance.
unreliable-return-valuesbooleanfalse Specifies whether Infinispan is allowed to disregard the Map contract when providing return values for org.infinispan.Cache#put(Object, Object) and org.infinispan.Cache#remove(Object) methods.

backups?

Defines backup locations for cache data and modifies state transfer properties.

NameTypeDefaultDescription
merge-policyDEFAULT Specifies the fully qualified name of a class that implements the XSiteEntryMergePolicy interface or any of the alias. Use if for ASYNC strategy backup.
max-cleanup-delaypositiveInteger30000 Specifies the maximum delay, in milliseconds, between which tombstone cleanup tasks run. This attribute applies to the asynchronous backup strategy only.
tombstone-map-sizepositiveInteger512000 Specifies the target number of tombstones to store. If the current size of the tombstone map is greater than the target size, then cleanup tasks run more frequently. If the current size of the tombstone map is less than the target size, then cleanup tasks run less frequently. This attribute applies to the asynchronous backup strategy only.

backup*

Configures a remote site as a backup location for cache data.

NameTypeDefaultDescription
sitestring Names the remote site to which the cache backs up data.
strategy
ASYNC Enables asynchronous mode.
SYNC Enables synchronous mode.
ASYNC Sets the strategy for backing up to a remote site.
failure-policy
IGNORE Ignore failed backup operations and write to the local cache.
WARN Log exceptions when backup operations fail and write to the local cache.
FAIL Throw exceptions when backup operations fail and attempt to stop writes to the local cache.
CUSTOM Use a custom failure policy. Requires the "failure-policy-class" attribute.
WARN Controls how local writes to caches are handled if synchronous backup operations fail.
timeoutlong15000 Specifies timeout, in milliseconds, for synchronous and asynchronous backup operations.
two-phase-commitbooleanfalse Enables two-phase commits for optimistic transactional caches with the synchronous backup strategy only.
failure-policy-classstring Specifies the fully qualified name of a class that implements the CustomFailurePolicy interface. Use if failure-policy="CUSTOM".

take-offline?

Specifies the number of failures that can occur before backup locations go offline.

NameTypeDefaultDescription
after-failuresint0 Sets the number of consecutive failures that can occur for backup operations before sites go offline. Specify a negative or zero value to ignore this attribute and use minimum wait time only ("min-wait").
min-waitlong0 Sets the minimum time to wait, in milliseconds, before sites go offline when backup operations fail. If subsequent operations are successful, the minimum wait time is reset. If you set "after-failures", sites go offline when the wait time is reached and the number of failures occur.

state-transfer?

Modifies state transfer operations.

NameTypeDefaultDescription
chunk-sizeint512 Specifies how many cache entries are batched in each transfer request.
timeoutlong1200000 The time (in milliseconds) to wait for the backup site acknowledge the state chunk received and applied. Default value is 20 min.
max-retriesint30 Sets the maximum number of retry attempts for push state failures. Specify a value of 0 (zero) to disable retry attempts. The default value is 30.
wait-timelong2000 Sets the amount of time, in milliseconds, to wait between retry attempts for push state failures. You must specify a value of 1 or more. The default value is 2000.
mode
MANUAL Users must bring backup locations online and initiate state transfer between remote sites.
AUTO Backup locations that use the asynchronous backup strategy can automatically come back online. State transfer operations begin when the remote site connections are stable.
MANUAL Controls whether cross-site state transfer happens manually on user action, which is the default, or automatically when backup locations come online.

backup-for?

Defines the local cache as a backup for a remote cache with a different name.

NameTypeDefaultDescription
remote-cachestring Specifies the name of the remote cache that uses the local cache as a backup.
remote-sitestring Specifies the name of the remote site that backs up data to the local cache.

encoding?

The cache encoding configuration.

Defines content type and encoding for keys and values of the cache.
NameTypeDefaultDescription
media-typestring The media type for both keys and values. When present, takes precedence over the individual configurations for keys and values.

key?

Describes the content-type and encoding.
NameTypeDefaultDescription
media-typestring

value?

Describes the content-type and encoding.
NameTypeDefaultDescription
media-typestring

locking?

The locking configuration of the cache.

NameTypeDefaultDescription
isolation
NONENo locking isolation will be performed. This is only valid in local mode. In clustered mode, READ_COMMITTED will be used instead.
READ_UNCOMMITTEDUnsupported. Actually configures READ_COMMITTED
READ_COMMITTEDRead committed is an isolation level that guarantees that any data read is committed at the moment it is read. However, depending on the outcome of other transactions, successive reads may return different results
REPEATABLE_READRepeatable read is an isolation level that guarantees that any data read is committed at the moment it is read and that, within a transaction, successive reads will always return the same data.
SERIALIZABLEUnsupported. Actually configures REPEATABLE_READ
REPEATABLE_READSets the cache locking isolation level. Infinispan only supports READ_COMMITTED or REPEATABLE_READ isolation level.
stripingbooleanfalseIf true, a pool of shared locks is maintained for all entries that need to be locked. Otherwise, a lock is created per entry in the cache. Lock striping helps control memory footprint but may reduce concurrency in the system.
acquire-timeoutlong10000Maximum time to attempt a particular lock acquisition.
concurrency-levelint32Concurrency level for lock containers. Adjust this value according to the number of concurrent threads interacting with Infinispan.

transaction?

The cache transaction configuration.

NameTypeDefaultDescription
mode
NONECache will not enlist within transactions.
BATCHUses batching to group cache operations together.
NON_XACache will enlist within transactions as a javax.transaction.Synchronization
NON_DURABLE_XACache will enlist within transactions as a javax.transaction.xa.XAResource, without recovery.
FULL_XACache will enlist within transactions as a javax.transaction.xa.XAResource, with recovery.
NONESets the cache transaction mode to one of NONE, BATCH, NON_XA, NON_DURABLE_XA, FULL_XA.
stop-timeoutlong30000If there are any ongoing transactions when a cache is stopped, Infinispan waits for ongoing remote and local transactions to finish. The amount of time to wait for is defined by the cache stop timeout.
locking
OPTIMISTICEnables Optimistic locking.
PESSIMISTICEnables Pessimistic locking.
OPTIMISTICThe locking mode for this cache, one of OPTIMISTIC or PESSIMISTIC.
transaction-manager-lookupstringorg.infinispan.transaction.lookup.GenericTransactionManagerLookup Configure Transaction manager lookup directly using an instance of TransactionManagerLookup. Calling this method marks the cache as transactional.
complete-timeoutlong60000 The duration (millis) in which to keep information about the completion of a transaction. Defaults to 60000.
reaper-intervallong30000 The time interval (millis) at which the thread that cleans up transaction completion information kicks in. Defaults to 30000.
auto-commitbooleantrue If the cache is transactional and transactionAutoCommit is enabled then for single operation transactions the user doesn't need to manually start a transaction, but a transactions is injected by the system. Defaults to true.
recovery-cachestring__recoveryInfoCacheName__ Sets the name of the cache where recovery related information is held. The cache's default name is "__recoveryInfoCacheName__"
notificationsbooleantrue Enables or disables triggering transactional notifications on cache listeners. By default is enabled.

expiration?

The cache expiration configuration.

NameTypeDefaultDescription
max-idlelong-1 Specifies the maximum amount of time, in milliseconds, that cache entries can remain idle. If no operations are performed on entries within the maximum idle time, the entries expire across the cluster. A value of 0 or -1 disables expiration.
lifespanlong-1 Specifies the maximum amount of time, in milliseconds, that cache entries can exist. After reaching their lifespan, cache entries expire across the cluster. A value of 0 or -1 disables expiration.
intervallong60000 Specifies the interval, in milliseconds, between expiration runs. A value of 0 or -1 disables the expiration reaper.
touch
SYNCDelays read operations until the other owners confirm that the timestamp for the entry is updated.
ASYNC Sends touch commands to other owners without waiting for confirmation. This mode allows read operations to return the value of a key even if another node has started expiring it. When that occurs, the read operation does not extend the lifespan of the key.
SYNC Controls how timestamps get updated for entries in clustered caches with maximum idle expiration. The default value is SYNC. This attribute applies only to caches that use synchronous mode. Timestamps are updated asynchronously for caches that use asynchronous mode.

store-as-binary?

Configures the cache to store data in binary format.

Controls whether when stored in memory, keys and values are stored as references to their original objects, or in a serialized, binary format. There are benefits to both approaches, but often if used in a clustered mode, storing objects as binary means that the cost of serialization happens early on, and can be amortized. Further, deserialization costs are incurred lazily which improves throughput. It is possible to control this on a fine-grained basis: you can choose to just store keys or values as binary, or both. DEPRECATED: please use memory element instead
NameTypeDefaultDescription
keysboolean Specify whether keys are stored as binary or not. Enabled by default if the "enabled" attribute is set to true.
valuesboolean Specify whether values are stored as binary or not. Enabled by default if the "enabled" attribute is set to true.

persistence?

Configures the persistence layer for caches.

NameTypeDefaultDescription
passivationbooleanfalse Enables passivation so that data is written to cache stores only if it is evicted from memory. Subsequent requests for passivated entries restore them to memory and remove them from persistent storage. If you do not enable passivation, writes to entries in memory result in writes to cache stores.
connection-attemptsint10 Sets the maximum number of attempts to start each configured `CacheWriter` or `CacheLoader`. An exception is thrown and the cache does not start if the number of connection attempts exceeds the maximum.
connection-intervalint50 Specifies the time, in milliseconds, to wait between connection attempts on startup. A negative or zero value means no wait between connection attempts.
availability-intervalint1000 Specifies the time, in milliseconds, between availability checks to determine if the PersistenceManager is available. In other words, this interval sets how often stores and loaders are polled via their `org.infinispan.persistence.spi.CacheWriter#isAvailable` or `org.infinispan.persistence.spi.CacheLoader#isAvailable` implementation. If a single store or loader is not available, an exception is thrown during cache operations.

cluster-loader

Defines a cluster cache loader.

NameTypeDefaultDescription
remote-timeoutlong15000The timeout when performing remote calls.
NameTypeDefaultDescription
namestringUnused XML attribute.
sharedbooleanfalse Determines if a cache loader is shared between cache instances. Values are true / false (default). This property prevents duplicate writes of data to the cache loader by different cache instances. An example is where all cache instances in a cluster use the same JDBC settings for the same remote, shared database. If true, only the nodes where modifications originate write to the cache store. If false, each cache reacts to potential remote updates by storing the data to the cache store.
preloadbooleanfalse Pre-loads data into memory from the cache loader when the cache starts. Values are true / false (default). This property is useful when data in the cache loader is required immediately after startup to prevent delays with cache operations when the data is loaded lazily. This property can provide a "warm cache" on startup but it impacts performance because it affects start time. Pre-loading data is done locally, so any data loaded is stored locally in the node only. Pre-loaded data is not replicated or distributed. Likewise, data is pre-loaded only up to the maximum configured number of entries in eviction.

property*

A cache loader property with name and value.

store

Defines a custom cache store.

NameTypeDefaultDescription
classstringDefines the class name of a cache store that implements either `CacheLoader`, `CacheWriter`, or both.
NameTypeDefaultDescription
sharedbooleanfalseThis setting should be set to true when multiple cache instances share the same cache store (e.g., multiple nodes in a cluster using a JDBC-based CacheStore pointing to the same, shared database.) Setting this to true avoids multiple cache instances writing the same modification multiple times. If enabled, only the node where the modification originated will write to the cache store. If disabled, each individual cache reacts to a potential remote update by storing the data to the cache store.
transactionalbooleanfalseThis setting should be set to true when the underlying cache store supports transactions and it is desirable for the underlying store and the cache to remain synchronized. With this enabled any Exceptions thrown whilst writing to the underlying store will result in both the store's and cache's transactions rollingback.
preloadbooleanfalseIf true, when the cache starts, data stored in the cache store will be pre-loaded into memory. This is particularly useful when data in the cache store will be needed immediately after startup and you want to avoid cache operations being delayed as a result of loading this data lazily. Can be used to provide a 'warm-cache' on startup, however there is a performance penalty as startup time is affected by this process. Likewise in some cases you cannot pre-load data in caches stores, such as when using shared remote stores.
purgebooleanfalse Empties the specified cache loader at startup. Values are true / false (default). This property takes effect only if read-only is false.
read-onlybooleanfalse Prevents data from being persisted to cache stores. Values are true / false (default). If true, cache stores load entries only. Any modifications to data in the cache do not apply to cache stores.
write-onlybooleanfalse Prevents data from being loaded from cache stores. Values are true / false (default). If true, cache stores write entries only. Any retrievals of data in the cache do not read from the cache store.
max-batch-sizeint100 Sets the maximum size of a batch to insert or delete from the cache store. If the value is less than one, no upper limit applies to the number of operations in a batch.
segmentedbooleantrue Configures cache stores to store data in hash space segments, with the cache's "segments" attribute defining the number of segments.

write-behind?

Configures cache stores as write-behind instead of write-through.

NameTypeDefaultDescription
modification-queue-sizeint1024 Specifies the maximum number of entries in the asynchronous modification queue. When the queue is full, write-through mode is used until the queue can accept new entries.
thread-pool-sizeint1 Specifies the number of threads to apply modifications to the cache store.
fail-silentlybooleanfalse Controls how asynchronous write operations take place when cache stores become unavailable. If "true", asynchronous write operations that fail are re-attempted with the number of times specified in the "connection-attempts" parameter. If all attempts fail, errors are ignored and write operations are not executed on the cache store. If "false", asynchronous write operations that fail are re-attempted when the underlying store becomes available. If the modification queue becomes full before the underlying store becomes available, an error is thrown on all future write operations to the store until the modification queue is flushed. The modification queue is not persisted. If the underlying store does not become available before the asynchronous store is stopped, queued modifications are lost.

property*

Defines a cache store property with name and value.

file-store

Defines a filesystem-based cache store.

NameTypeDefaultDescription
max-entriesint Deprecated since 13.0 which ignores the property. Specifies the maximum number of entries that the file store can hold. To increase the speed of lookups, Single File cache stores index keys and their locations in the file. To avoid excessive memory usage, you can configure the maximum number of entries so that entries are removed permanently from both memory and the cache store when the maximum is exceeded. However, this can lead to data loss. You should only set a maximum number of entries if data can be recomputed or retrieved from an authoritative data store. By default, the value is `-1` which means that there is no maximum number of entries. Deprecated since 13.0, will be removed in 16.0.
pathstring Specifies a filesystem directory for data. The value can be a relative or absolute path. Relative paths are created relative to the configured global persistent location. Absolute paths must be subdirectories of the global persistent location, otherwise an exception is thrown.
open-files-limitint1000 Max number of data and index files opened for reading (current log file and compaction output are not included here - always uses one each). Index files will use 1/10th of list limit with a minimum of 1 and a maximum equal to the number of cache segments.
compaction-thresholddouble0.5 If amount of unused space in some data file gets above this threshold, the file is compacted - entries from that file are copied to a new file and the old file is deleted.

index?

Configure where and how should be the index stored.
NameTypeDefaultDescription
pathstring A location where the store keeps index - this does not have be persistent across restarts, and SSD storage is recommended (the index is accessed randomly).
segmentsint3 Deprecated since 15.0 which ignores the property. This value is ignored as we create an index file per cache segment instead.
max-queue-lengthint1000 Max number of entry writes that are waiting to be written to the index, per index segment.
max-node-sizeint4096 Max size of node (continuous block on filesystem used in index implementation), in bytes.
min-node-sizeint0 If the size of node (continuous block on filesystem used in index implementation) drops below this threshold, the node will try to balance its size with some neighbour node, possibly causing join of multiple nodes.

data?

Configure where and how should be the entries stored - this is the persistent location.
NameTypeDefaultDescription
pathstring A location on disk where the store writes entries. Files are written sequentially, reads are random.
max-file-sizeint16777216 Max size of single file with entries, in bytes.
sync-writesbooleanfalse If true, the write is confirmed only after the entry is fsynced on disk.
NameTypeDefaultDescription
sharedbooleanfalseThis setting should be set to true when multiple cache instances share the same cache store (e.g., multiple nodes in a cluster using a JDBC-based CacheStore pointing to the same, shared database.) Setting this to true avoids multiple cache instances writing the same modification multiple times. If enabled, only the node where the modification originated will write to the cache store. If disabled, each individual cache reacts to a potential remote update by storing the data to the cache store.
transactionalbooleanfalseThis setting should be set to true when the underlying cache store supports transactions and it is desirable for the underlying store and the cache to remain synchronized. With this enabled any Exceptions thrown whilst writing to the underlying store will result in both the store's and cache's transactions rollingback.
preloadbooleanfalseIf true, when the cache starts, data stored in the cache store will be pre-loaded into memory. This is particularly useful when data in the cache store will be needed immediately after startup and you want to avoid cache operations being delayed as a result of loading this data lazily. Can be used to provide a 'warm-cache' on startup, however there is a performance penalty as startup time is affected by this process. Likewise in some cases you cannot pre-load data in caches stores, such as when using shared remote stores.
purgebooleanfalse Empties the specified cache loader at startup. Values are true / false (default). This property takes effect only if read-only is false.
read-onlybooleanfalse Prevents data from being persisted to cache stores. Values are true / false (default). If true, cache stores load entries only. Any modifications to data in the cache do not apply to cache stores.
write-onlybooleanfalse Prevents data from being loaded from cache stores. Values are true / false (default). If true, cache stores write entries only. Any retrievals of data in the cache do not read from the cache store.
max-batch-sizeint100 Sets the maximum size of a batch to insert or delete from the cache store. If the value is less than one, no upper limit applies to the number of operations in a batch.
segmentedbooleantrue Configures cache stores to store data in hash space segments, with the cache's "segments" attribute defining the number of segments.

write-behind?

Configures cache stores as write-behind instead of write-through.

NameTypeDefaultDescription
modification-queue-sizeint1024 Specifies the maximum number of entries in the asynchronous modification queue. When the queue is full, write-through mode is used until the queue can accept new entries.
thread-pool-sizeint1 Specifies the number of threads to apply modifications to the cache store.
fail-silentlybooleanfalse Controls how asynchronous write operations take place when cache stores become unavailable. If "true", asynchronous write operations that fail are re-attempted with the number of times specified in the "connection-attempts" parameter. If all attempts fail, errors are ignored and write operations are not executed on the cache store. If "false", asynchronous write operations that fail are re-attempted when the underlying store becomes available. If the modification queue becomes full before the underlying store becomes available, an error is thrown on all future write operations to the store until the modification queue is flushed. The modification queue is not persisted. If the underlying store does not become available before the asynchronous store is stopped, queued modifications are lost.

property*

Defines a cache store property with name and value.

single-file-store

Deprecated since 13.0. Defines a filesystem-based cache store that stores its elements in a single file.

NameTypeDefaultDescription
max-entriesint Specifies the maximum number of entries that the file store can hold. To increase the speed of lookups, Single File cache stores index keys and their locations in the file. To avoid excessive memory usage, you can configure the maximum number of entries so that entries are removed permanently from both memory and the cache store when the maximum is exceeded. However, this can lead to data loss. You should only set a maximum number of entries if data can be recomputed or retrieved from an authoritative data store. By default, the value is `-1` which means that there is no maximum number of entries.
pathstring Specifies a filesystem directory for data. The value can be a relative or absolute path. Relative paths are created relative to the configured global persistent location. Absolute paths must be subdirectories of the global persistent location, otherwise an exception is thrown.
NameTypeDefaultDescription
sharedbooleanfalseThis setting should be set to true when multiple cache instances share the same cache store (e.g., multiple nodes in a cluster using a JDBC-based CacheStore pointing to the same, shared database.) Setting this to true avoids multiple cache instances writing the same modification multiple times. If enabled, only the node where the modification originated will write to the cache store. If disabled, each individual cache reacts to a potential remote update by storing the data to the cache store.
transactionalbooleanfalseThis setting should be set to true when the underlying cache store supports transactions and it is desirable for the underlying store and the cache to remain synchronized. With this enabled any Exceptions thrown whilst writing to the underlying store will result in both the store's and cache's transactions rollingback.
preloadbooleanfalseIf true, when the cache starts, data stored in the cache store will be pre-loaded into memory. This is particularly useful when data in the cache store will be needed immediately after startup and you want to avoid cache operations being delayed as a result of loading this data lazily. Can be used to provide a 'warm-cache' on startup, however there is a performance penalty as startup time is affected by this process. Likewise in some cases you cannot pre-load data in caches stores, such as when using shared remote stores.
purgebooleanfalse Empties the specified cache loader at startup. Values are true / false (default). This property takes effect only if read-only is false.
read-onlybooleanfalse Prevents data from being persisted to cache stores. Values are true / false (default). If true, cache stores load entries only. Any modifications to data in the cache do not apply to cache stores.
write-onlybooleanfalse Prevents data from being loaded from cache stores. Values are true / false (default). If true, cache stores write entries only. Any retrievals of data in the cache do not read from the cache store.
max-batch-sizeint100 Sets the maximum size of a batch to insert or delete from the cache store. If the value is less than one, no upper limit applies to the number of operations in a batch.
segmentedbooleantrue Configures cache stores to store data in hash space segments, with the cache's "segments" attribute defining the number of segments.

write-behind?

Configures cache stores as write-behind instead of write-through.

NameTypeDefaultDescription
modification-queue-sizeint1024 Specifies the maximum number of entries in the asynchronous modification queue. When the queue is full, write-through mode is used until the queue can accept new entries.
thread-pool-sizeint1 Specifies the number of threads to apply modifications to the cache store.
fail-silentlybooleanfalse Controls how asynchronous write operations take place when cache stores become unavailable. If "true", asynchronous write operations that fail are re-attempted with the number of times specified in the "connection-attempts" parameter. If all attempts fail, errors are ignored and write operations are not executed on the cache store. If "false", asynchronous write operations that fail are re-attempted when the underlying store becomes available. If the modification queue becomes full before the underlying store becomes available, an error is thrown on all future write operations to the store until the modification queue is flushed. The modification queue is not persisted. If the underlying store does not become available before the asynchronous store is stopped, queued modifications are lost.

property*

Defines a cache store property with name and value.

memory?

Controls how the entries are stored in memory

NameTypeDefaultDescription
max-sizestring Defines the size of the data container in bytes. The default unit is B (bytes). You can optionally set one of the following units: KB (kilobytes), MB (megabytes), GB (gigabytes), TB (terabytes), KiB (kibibytes), MiB (mebibytes), GiB (gibibytes) and TiB (tebibytes). Eviction occurs when the approximate memory usage of the data container exceeds the maximum size.
max-countlong-1 Defines the size of the data container by number of entries. Eviction occurs after the container size exceeds the maximum count.
when-full
NONE Do not evict entries. If you define a size for the data container, you should specify either the REMOVE or EXCEPTION exiction strategy.
MANUAL Manually evict entries. This strategy is the same as NONE but does not log errors if you enable passivation without eviction.
REMOVE Automatically evict older entries to make space for new entries. By default REMOVE is always used when you define a size for the data container unless you configure the EXCEPTION strategy.
EXCEPTION Do not evict entries. If the data container reaches the maximum size, exceptions occur for requests to create new entries. You can use this eviction strategy only with transactional caches that use two phase commit.
UNORDEREDDeprecated. Activates REMOVE policy.
FIFODeprecated. Activates REMOVE policy.
LRUDeprecated. Activates REMOVE policy.
LIRSDeprecated. Activates REMOVE policy.
Specifies a strategy for evicting cache entries. Eviction always takes place when you define either the max-size or the max-count (but not both) for the data container. If no strategy is defined, but max-count or max-size is configured, REMOVE is used.
storage
HEAP Stores cache entries in JVM heap memory.
OFF_HEAP Stores cache entries as bytes in native memory outside the Java heap.
OBJECT Deprecated, only added in 11.0 to simplify the transition from the <object/> element. Please use HEAP instead.
BINARY Deprecated, only added in 11.0 to simplify the transition from the <binary/> element. Please use HEAP and set the encoding media type instead.
HEAP Defines the type of memory that the data container uses as storage.

query?

Defines query options for cache

NameTypeDefaultDescription
default-max-resultsinteger100 Limits the number of results returned by a query. Applies to indexed, non-indexed, and hybrid queries. Setting the default-max-results significantly improves performance of queries that don't have an explicit limit set.
hit-count-accuracyinteger10000 Limit the required accuracy of the hit count for the indexed queries to an upper-bound. Setting the hit-count-accuracy optimize the performance of queries targeting large data sets. For optimal results, set this value slightly above the expected hit count. If you do not require accurate hit counts, set it to a low value.

indexing?

Defines indexing options for cache

NameTypeDefaultDescription
enabledbooleanfalse Enables and disables cache indexing. Including the indexing element in cache configuration automatically enables indexing without the need to set the value of this attribute to "true". Indexing is also automatically enabled when the "auto-config" attribute is set to a value of "true".
storage
filesystemLocal filesystem index storage. This is the default.
local-heapJVM heap index storage, not persisted between restarts. Only suitable for small datasets with low concurrency.
filesystemSpecify index storage options.
startup-mode
purge Clears the index when the cache starts.
reindex Rebuilds the index when the cache starts.
auto Automatically triggers an indexing operation when the cache starts. If data is volatile and the index is persistent then the cache is cleared when it starts. If data is persistent and the index is volatile then the cache is reindexed when it starts.
none Cache startup does not trigger an indexing operation. This is the default value.
none Triggers an indexing process when the cache starts.
pathstring Specifies a filesystem path for the index when storage is 'filesystem'. The value can be a relative or absolute path. Relative paths are created relative to the configured global persistent location, or to the current working directory when global state is disabled. By default, the cache name is used as a relative path for index path. When setting a custom value, ensure that there are no conflicts between caches using the same indexed entities.
auto-configbooleanfalseDeprecated since 11.0, with no replacement. Whether or not to apply automatic index configuration based on cache type

index-reader?

Controls index reading parameters.

NameTypeDefaultDescription
refresh-intervallong0 Interval, in milliseconds, to reopen the index reader. By default, the index reader is refreshed on-demand during searches, if new entries were indexed since the last refresh. Configuring with a value larger than zero will make some queries results stale, but query throughput will increase substantially, specially in write heavy scenarios.

index-writer?

Controls index writing parameters

NameTypeDefaultDescription
commit-intervalint1000 Amount of time, in milliseconds, that index changes that are buffered in memory are flushed to the index storage and a commit is performed. Because operation is costly, small values should be avoided. The default is 1000 ms (1 second).
ram-buffer-sizeint32 Maximum amount of memory that can be used for buffering added entries and deletions before they are flushed to the index storage. Large values result in faster indexing but use more memory. For faster indexing performance you should set this attribute instead of `max-buffered-entries`. When used in combination with the `max-buffered-entries` attribute, a flush occurs for whichever event happens first.
max-buffered-entriesint32 Maximum number of entries that can be buffered in-memory before they are flushed to the index storage. Large values result in faster indexing but use more memory. When used in combination with the `ram-buffer-size` attribute, a flush occurs for whichever event happens first.
thread-pool-sizeint1 Number of threads that execute write operations to the index.
queue-countint1 Number of internal queues to use for each indexed type. Each queue holds a batch of modifications that is applied to the index and queues are processed in parallel. Increasing the number of queues will lead to an increase of indexing throughput, but only if the bottleneck is CPU. For optimum results, do not set a value for `queue-count` that is larger than the value for `thread-pool-size`.
queue-sizeint1000 Maximum number of elements each queue can hold. Increasing the `queue-size` value increases the amount of memory that is used during indexing operations. Setting a value that is too small can block indexing operations.
low-level-tracebooleanfalse Enables low-level trace information for indexing operations. Enabling this attribute substantially degrades performance. You should use this low-level tracing only as a last resource for troubleshooting.

index-merge?

Defines properties to control the merge of index segments. An index segment is not related to an Infinispan segment, but represents a section of index in the storage.

NameTypeDefaultDescription
max-entriesint Maximum number of entries that an index segment can have before merging. Segments with more than this number of entries are not merged. Smaller values perform better on frequently changing indexes, larger values provide better search performance if the index does not change often.
factorint Number of segments that are merged at once. With smaller values, merging happens more often, which uses more resources, but the total number of segments will be lower on average, increasing search performance. Larger values (greater than 10) are best for heavy writing scenarios.
min-sizeint Minimum target size of segments, in MB, for background merges. Segments smaller than this size are merged more aggressively. Setting a value that is too large might result in expensive merge operations, even though they are less frequent.
max-sizeint Maximum size of segments, in MB, for background merges. Segments larger than this size are never merged in the background. Settings this to a lower value helps reduce memory requirements and avoids some merging operations at the cost of optimal search speed. This attribute is ignored when forcefully merging an index and `max-forced-size` applies instead.
max-forced-sizeint maximum size of segments, in MB, for forced merges and overrides the `max-size` attribute. Set this to the same value as `max-size` or lower. However setting the value too low degrades search performance because documents are deleted.
calibrate-by-deletesboolean Whether the number of deleted entries in an index should be taken into account when counting the entries in the segment. Setting `false` will lead to more frequent merges caused by `max-entries`, but will more aggressively merge segments with many deleted documents, improving search performance.

key-transformers?

Defines the Transformers used to stringify keys for indexing with Lucene

key-transformer*

Defines the Transformer to use for the specified key class
NameTypeDefaultDescription
keystring
transformerstring

indexed-entities?

Defines the set of indexed type names (fully qualified). If values of types that are not included in this set are put in the cache they will not be indexed.

indexed-entity+

Indexed entity type name. Must be either a fully qualified Java class name or a protobuf type name.

property*

Property to pass on to the indexing system

custom-interceptors?

Deprecated since 10.0, will be removed without a replacement. Configures custom interceptors to be added to the cache.

interceptor*

Deprecated since 10.0, will be removed without a replacement.

NameTypeDefaultDescription
afterstringDictates that the custom interceptor appears immediately after the specified interceptor. If the specified interceptor is not found in the interceptor chain, a ConfigurationException will be thrown when the cache starts.
beforestringDictates that the custom interceptor appears immediately before the specified interceptor. If the specified interceptor is not found in the interceptor chain, a ConfigurationException will be thrown when the cache starts.
classstringA fully qualified class name of the new custom interceptor to add to the configuration.
indexintSpecifies a position in the interceptor chain to place the new interceptor. The index starts at 0 and goes up to the number of interceptors in a given configuration. A ConfigurationException is thrown if the index is less than 0 or greater than the maximum number of interceptors in the chain.
positionstringSpecifies a position where to place the new interceptor. Allowed values are FIRST, LAST, and OTHER_THAN_FIRST_OR_LAST

property?

security?

Configures cache-level security.

authorization?

Configures authorization for this cache.

NameTypeDefaultDescription
enabledbooleanfalse Enables authorization checks for this cache. Defaults to true if the authorization element is present.
roles Sets the valid roles required to access this cache.

replicated-cache

Defines a REPL_* mode cache.

NameTypeDefaultDescription
segmentsint256 Sets the number of hash space segments per cluster. The default value is 256. The value should be at least 20 * the cluster size.
consistent-hash-factorystring Deprecated since 11.0. Will be removed in 14.0, the segment allocation will no longer be customizable. The factory to use for generating the consistent hash. Must implement `org.infinispan.distribution.ch.ConsistentHashFactory`. E.g. `org.infinispan.distribution.ch.impl.SyncConsistentHashFactory` can be used to guarantee that multiple distributed caches use exactly the same consistent hash, which for performance reasons is not guaranteed by the default consistent hash factory instance used.
key-partitionerstring The name of the key partitioner class. Must implement `org.infinispan.distribution.ch.KeyPartitioner`. A custom key partitioner can be used as an alternative to grouping, to guarantee that some keys are located in the same segment (and thus their primary owner is the same node). Since 8.2.

state-transfer?

The state transfer configuration for distribution and replicated caches.

NameTypeDefaultDescription
enabledbooleantrueIf enabled, this will cause the cache to ask neighboring caches for state when it starts up, so the cache starts 'warm', although it will impact startup time.
timeoutlong240000The maximum amount of time (ms) to wait for state from neighboring caches, before throwing an exception and aborting startup. Must be greater than or equal to 'remote-timeout' in the clustering configuration.
chunk-sizeinteger512The number of cache entries to batch in each transfer.
await-initial-transferbooleantrueIf enabled, this will cause the cache to wait for initial state transfer to complete before responding to requests.
NameTypeDefaultDescription
mode
ASYNC Enables asynchronous mode.
SYNC Enables synchronous mode.
SYNCSets the clustered cache mode, ASYNC for asynchronous operation, or SYNC for synchronous operation.
remote-timeoutlong15000In SYNC mode, the timeout (in ms) used to wait for an acknowledgment when making a remote call, after which the call is aborted and an exception is thrown.

partition-handling?

Configures the way this cache reacts to node crashes and split brains.

NameTypeDefaultDescription
enabledboolean Deprecated, use type instead. Enable/disable the partition handling functionality. Defaults to false.
when-split
DENY_READ_WRITES Allow read and write operations only if all replicas of an entry are in the partition. If a partition does not include all replicas of an entry, do not allow cache operations for that entry.
ALLOW_READS Allow read operations for entries and deny write operations unless the partition includes all replicas of an entry.
ALLOW_READ_WRITES Allow read and write operations on caches while a cluster is split into network partitions. Caches remain available and conflicts are resolved during merge.
ALLOW_READ_WRITESThe type of actions that are possible when a split brain scenario is encountered.
merge-policyNONEThe entry merge policy which should be applied on partition merges.
NameTypeDefaultDescription
nameIDUniquely identifies this cache within its cache container.
configurationIDREFThe name of the cache configuration which this configuration inherits from.
statisticsbooleanfalseDetermines whether or not the cache should collect statistics. Keep disabled for optimal performance.
statistics-availablebooleantrueIf set to false, statistics gathering cannot be enabled during runtime. Keep disabled for optimal performance.
unreliable-return-valuesbooleanfalse Specifies whether Infinispan is allowed to disregard the Map contract when providing return values for org.infinispan.Cache#put(Object, Object) and org.infinispan.Cache#remove(Object) methods.

backups?

Defines backup locations for cache data and modifies state transfer properties.

NameTypeDefaultDescription
merge-policyDEFAULT Specifies the fully qualified name of a class that implements the XSiteEntryMergePolicy interface or any of the alias. Use if for ASYNC strategy backup.
max-cleanup-delaypositiveInteger30000 Specifies the maximum delay, in milliseconds, between which tombstone cleanup tasks run. This attribute applies to the asynchronous backup strategy only.
tombstone-map-sizepositiveInteger512000 Specifies the target number of tombstones to store. If the current size of the tombstone map is greater than the target size, then cleanup tasks run more frequently. If the current size of the tombstone map is less than the target size, then cleanup tasks run less frequently. This attribute applies to the asynchronous backup strategy only.

backup*

Configures a remote site as a backup location for cache data.

NameTypeDefaultDescription
sitestring Names the remote site to which the cache backs up data.
strategy
ASYNC Enables asynchronous mode.
SYNC Enables synchronous mode.
ASYNC Sets the strategy for backing up to a remote site.
failure-policy
IGNORE Ignore failed backup operations and write to the local cache.
WARN Log exceptions when backup operations fail and write to the local cache.
FAIL Throw exceptions when backup operations fail and attempt to stop writes to the local cache.
CUSTOM Use a custom failure policy. Requires the "failure-policy-class" attribute.
WARN Controls how local writes to caches are handled if synchronous backup operations fail.
timeoutlong15000 Specifies timeout, in milliseconds, for synchronous and asynchronous backup operations.
two-phase-commitbooleanfalse Enables two-phase commits for optimistic transactional caches with the synchronous backup strategy only.
failure-policy-classstring Specifies the fully qualified name of a class that implements the CustomFailurePolicy interface. Use if failure-policy="CUSTOM".

take-offline?

Specifies the number of failures that can occur before backup locations go offline.

NameTypeDefaultDescription
after-failuresint0 Sets the number of consecutive failures that can occur for backup operations before sites go offline. Specify a negative or zero value to ignore this attribute and use minimum wait time only ("min-wait").
min-waitlong0 Sets the minimum time to wait, in milliseconds, before sites go offline when backup operations fail. If subsequent operations are successful, the minimum wait time is reset. If you set "after-failures", sites go offline when the wait time is reached and the number of failures occur.

state-transfer?

Modifies state transfer operations.

NameTypeDefaultDescription
chunk-sizeint512 Specifies how many cache entries are batched in each transfer request.
timeoutlong1200000 The time (in milliseconds) to wait for the backup site acknowledge the state chunk received and applied. Default value is 20 min.
max-retriesint30 Sets the maximum number of retry attempts for push state failures. Specify a value of 0 (zero) to disable retry attempts. The default value is 30.
wait-timelong2000 Sets the amount of time, in milliseconds, to wait between retry attempts for push state failures. You must specify a value of 1 or more. The default value is 2000.
mode
MANUAL Users must bring backup locations online and initiate state transfer between remote sites.
AUTO Backup locations that use the asynchronous backup strategy can automatically come back online. State transfer operations begin when the remote site connections are stable.
MANUAL Controls whether cross-site state transfer happens manually on user action, which is the default, or automatically when backup locations come online.

backup-for?

Defines the local cache as a backup for a remote cache with a different name.

NameTypeDefaultDescription
remote-cachestring Specifies the name of the remote cache that uses the local cache as a backup.
remote-sitestring Specifies the name of the remote site that backs up data to the local cache.

encoding?

The cache encoding configuration.

Defines content type and encoding for keys and values of the cache.
NameTypeDefaultDescription
media-typestring The media type for both keys and values. When present, takes precedence over the individual configurations for keys and values.

key?

Describes the content-type and encoding.
NameTypeDefaultDescription
media-typestring

value?

Describes the content-type and encoding.
NameTypeDefaultDescription
media-typestring

locking?

The locking configuration of the cache.

NameTypeDefaultDescription
isolation
NONENo locking isolation will be performed. This is only valid in local mode. In clustered mode, READ_COMMITTED will be used instead.
READ_UNCOMMITTEDUnsupported. Actually configures READ_COMMITTED
READ_COMMITTEDRead committed is an isolation level that guarantees that any data read is committed at the moment it is read. However, depending on the outcome of other transactions, successive reads may return different results
REPEATABLE_READRepeatable read is an isolation level that guarantees that any data read is committed at the moment it is read and that, within a transaction, successive reads will always return the same data.
SERIALIZABLEUnsupported. Actually configures REPEATABLE_READ
REPEATABLE_READSets the cache locking isolation level. Infinispan only supports READ_COMMITTED or REPEATABLE_READ isolation level.
stripingbooleanfalseIf true, a pool of shared locks is maintained for all entries that need to be locked. Otherwise, a lock is created per entry in the cache. Lock striping helps control memory footprint but may reduce concurrency in the system.
acquire-timeoutlong10000Maximum time to attempt a particular lock acquisition.
concurrency-levelint32Concurrency level for lock containers. Adjust this value according to the number of concurrent threads interacting with Infinispan.

transaction?

The cache transaction configuration.

NameTypeDefaultDescription
mode
NONECache will not enlist within transactions.
BATCHUses batching to group cache operations together.
NON_XACache will enlist within transactions as a javax.transaction.Synchronization
NON_DURABLE_XACache will enlist within transactions as a javax.transaction.xa.XAResource, without recovery.
FULL_XACache will enlist within transactions as a javax.transaction.xa.XAResource, with recovery.
NONESets the cache transaction mode to one of NONE, BATCH, NON_XA, NON_DURABLE_XA, FULL_XA.
stop-timeoutlong30000If there are any ongoing transactions when a cache is stopped, Infinispan waits for ongoing remote and local transactions to finish. The amount of time to wait for is defined by the cache stop timeout.
locking
OPTIMISTICEnables Optimistic locking.
PESSIMISTICEnables Pessimistic locking.
OPTIMISTICThe locking mode for this cache, one of OPTIMISTIC or PESSIMISTIC.
transaction-manager-lookupstringorg.infinispan.transaction.lookup.GenericTransactionManagerLookup Configure Transaction manager lookup directly using an instance of TransactionManagerLookup. Calling this method marks the cache as transactional.
complete-timeoutlong60000 The duration (millis) in which to keep information about the completion of a transaction. Defaults to 60000.
reaper-intervallong30000 The time interval (millis) at which the thread that cleans up transaction completion information kicks in. Defaults to 30000.
auto-commitbooleantrue If the cache is transactional and transactionAutoCommit is enabled then for single operation transactions the user doesn't need to manually start a transaction, but a transactions is injected by the system. Defaults to true.
recovery-cachestring__recoveryInfoCacheName__ Sets the name of the cache where recovery related information is held. The cache's default name is "__recoveryInfoCacheName__"
notificationsbooleantrue Enables or disables triggering transactional notifications on cache listeners. By default is enabled.

expiration?

The cache expiration configuration.

NameTypeDefaultDescription
max-idlelong-1 Specifies the maximum amount of time, in milliseconds, that cache entries can remain idle. If no operations are performed on entries within the maximum idle time, the entries expire across the cluster. A value of 0 or -1 disables expiration.
lifespanlong-1 Specifies the maximum amount of time, in milliseconds, that cache entries can exist. After reaching their lifespan, cache entries expire across the cluster. A value of 0 or -1 disables expiration.
intervallong60000 Specifies the interval, in milliseconds, between expiration runs. A value of 0 or -1 disables the expiration reaper.
touch
SYNCDelays read operations until the other owners confirm that the timestamp for the entry is updated.
ASYNC Sends touch commands to other owners without waiting for confirmation. This mode allows read operations to return the value of a key even if another node has started expiring it. When that occurs, the read operation does not extend the lifespan of the key.
SYNC Controls how timestamps get updated for entries in clustered caches with maximum idle expiration. The default value is SYNC. This attribute applies only to caches that use synchronous mode. Timestamps are updated asynchronously for caches that use asynchronous mode.

store-as-binary?

Configures the cache to store data in binary format.

Controls whether when stored in memory, keys and values are stored as references to their original objects, or in a serialized, binary format. There are benefits to both approaches, but often if used in a clustered mode, storing objects as binary means that the cost of serialization happens early on, and can be amortized. Further, deserialization costs are incurred lazily which improves throughput. It is possible to control this on a fine-grained basis: you can choose to just store keys or values as binary, or both. DEPRECATED: please use memory element instead
NameTypeDefaultDescription
keysboolean Specify whether keys are stored as binary or not. Enabled by default if the "enabled" attribute is set to true.
valuesboolean Specify whether values are stored as binary or not. Enabled by default if the "enabled" attribute is set to true.

persistence?

Configures the persistence layer for caches.

NameTypeDefaultDescription
passivationbooleanfalse Enables passivation so that data is written to cache stores only if it is evicted from memory. Subsequent requests for passivated entries restore them to memory and remove them from persistent storage. If you do not enable passivation, writes to entries in memory result in writes to cache stores.
connection-attemptsint10 Sets the maximum number of attempts to start each configured `CacheWriter` or `CacheLoader`. An exception is thrown and the cache does not start if the number of connection attempts exceeds the maximum.
connection-intervalint50 Specifies the time, in milliseconds, to wait between connection attempts on startup. A negative or zero value means no wait between connection attempts.
availability-intervalint1000 Specifies the time, in milliseconds, between availability checks to determine if the PersistenceManager is available. In other words, this interval sets how often stores and loaders are polled via their `org.infinispan.persistence.spi.CacheWriter#isAvailable` or `org.infinispan.persistence.spi.CacheLoader#isAvailable` implementation. If a single store or loader is not available, an exception is thrown during cache operations.

cluster-loader

Defines a cluster cache loader.

NameTypeDefaultDescription
remote-timeoutlong15000The timeout when performing remote calls.
NameTypeDefaultDescription
namestringUnused XML attribute.
sharedbooleanfalse Determines if a cache loader is shared between cache instances. Values are true / false (default). This property prevents duplicate writes of data to the cache loader by different cache instances. An example is where all cache instances in a cluster use the same JDBC settings for the same remote, shared database. If true, only the nodes where modifications originate write to the cache store. If false, each cache reacts to potential remote updates by storing the data to the cache store.
preloadbooleanfalse Pre-loads data into memory from the cache loader when the cache starts. Values are true / false (default). This property is useful when data in the cache loader is required immediately after startup to prevent delays with cache operations when the data is loaded lazily. This property can provide a "warm cache" on startup but it impacts performance because it affects start time. Pre-loading data is done locally, so any data loaded is stored locally in the node only. Pre-loaded data is not replicated or distributed. Likewise, data is pre-loaded only up to the maximum configured number of entries in eviction.

property*

A cache loader property with name and value.

store

Defines a custom cache store.

NameTypeDefaultDescription
classstringDefines the class name of a cache store that implements either `CacheLoader`, `CacheWriter`, or both.
NameTypeDefaultDescription
sharedbooleanfalseThis setting should be set to true when multiple cache instances share the same cache store (e.g., multiple nodes in a cluster using a JDBC-based CacheStore pointing to the same, shared database.) Setting this to true avoids multiple cache instances writing the same modification multiple times. If enabled, only the node where the modification originated will write to the cache store. If disabled, each individual cache reacts to a potential remote update by storing the data to the cache store.
transactionalbooleanfalseThis setting should be set to true when the underlying cache store supports transactions and it is desirable for the underlying store and the cache to remain synchronized. With this enabled any Exceptions thrown whilst writing to the underlying store will result in both the store's and cache's transactions rollingback.
preloadbooleanfalseIf true, when the cache starts, data stored in the cache store will be pre-loaded into memory. This is particularly useful when data in the cache store will be needed immediately after startup and you want to avoid cache operations being delayed as a result of loading this data lazily. Can be used to provide a 'warm-cache' on startup, however there is a performance penalty as startup time is affected by this process. Likewise in some cases you cannot pre-load data in caches stores, such as when using shared remote stores.
purgebooleanfalse Empties the specified cache loader at startup. Values are true / false (default). This property takes effect only if read-only is false.
read-onlybooleanfalse Prevents data from being persisted to cache stores. Values are true / false (default). If true, cache stores load entries only. Any modifications to data in the cache do not apply to cache stores.
write-onlybooleanfalse Prevents data from being loaded from cache stores. Values are true / false (default). If true, cache stores write entries only. Any retrievals of data in the cache do not read from the cache store.
max-batch-sizeint100 Sets the maximum size of a batch to insert or delete from the cache store. If the value is less than one, no upper limit applies to the number of operations in a batch.
segmentedbooleantrue Configures cache stores to store data in hash space segments, with the cache's "segments" attribute defining the number of segments.

write-behind?

Configures cache stores as write-behind instead of write-through.

NameTypeDefaultDescription
modification-queue-sizeint1024 Specifies the maximum number of entries in the asynchronous modification queue. When the queue is full, write-through mode is used until the queue can accept new entries.
thread-pool-sizeint1 Specifies the number of threads to apply modifications to the cache store.
fail-silentlybooleanfalse Controls how asynchronous write operations take place when cache stores become unavailable. If "true", asynchronous write operations that fail are re-attempted with the number of times specified in the "connection-attempts" parameter. If all attempts fail, errors are ignored and write operations are not executed on the cache store. If "false", asynchronous write operations that fail are re-attempted when the underlying store becomes available. If the modification queue becomes full before the underlying store becomes available, an error is thrown on all future write operations to the store until the modification queue is flushed. The modification queue is not persisted. If the underlying store does not become available before the asynchronous store is stopped, queued modifications are lost.

property*

Defines a cache store property with name and value.

file-store

Defines a filesystem-based cache store.

NameTypeDefaultDescription
max-entriesint Deprecated since 13.0 which ignores the property. Specifies the maximum number of entries that the file store can hold. To increase the speed of lookups, Single File cache stores index keys and their locations in the file. To avoid excessive memory usage, you can configure the maximum number of entries so that entries are removed permanently from both memory and the cache store when the maximum is exceeded. However, this can lead to data loss. You should only set a maximum number of entries if data can be recomputed or retrieved from an authoritative data store. By default, the value is `-1` which means that there is no maximum number of entries. Deprecated since 13.0, will be removed in 16.0.
pathstring Specifies a filesystem directory for data. The value can be a relative or absolute path. Relative paths are created relative to the configured global persistent location. Absolute paths must be subdirectories of the global persistent location, otherwise an exception is thrown.
open-files-limitint1000 Max number of data and index files opened for reading (current log file and compaction output are not included here - always uses one each). Index files will use 1/10th of list limit with a minimum of 1 and a maximum equal to the number of cache segments.
compaction-thresholddouble0.5 If amount of unused space in some data file gets above this threshold, the file is compacted - entries from that file are copied to a new file and the old file is deleted.

index?

Configure where and how should be the index stored.
NameTypeDefaultDescription
pathstring A location where the store keeps index - this does not have be persistent across restarts, and SSD storage is recommended (the index is accessed randomly).
segmentsint3 Deprecated since 15.0 which ignores the property. This value is ignored as we create an index file per cache segment instead.
max-queue-lengthint1000 Max number of entry writes that are waiting to be written to the index, per index segment.
max-node-sizeint4096 Max size of node (continuous block on filesystem used in index implementation), in bytes.
min-node-sizeint0 If the size of node (continuous block on filesystem used in index implementation) drops below this threshold, the node will try to balance its size with some neighbour node, possibly causing join of multiple nodes.

data?

Configure where and how should be the entries stored - this is the persistent location.
NameTypeDefaultDescription
pathstring A location on disk where the store writes entries. Files are written sequentially, reads are random.
max-file-sizeint16777216 Max size of single file with entries, in bytes.
sync-writesbooleanfalse If true, the write is confirmed only after the entry is fsynced on disk.
NameTypeDefaultDescription
sharedbooleanfalseThis setting should be set to true when multiple cache instances share the same cache store (e.g., multiple nodes in a cluster using a JDBC-based CacheStore pointing to the same, shared database.) Setting this to true avoids multiple cache instances writing the same modification multiple times. If enabled, only the node where the modification originated will write to the cache store. If disabled, each individual cache reacts to a potential remote update by storing the data to the cache store.
transactionalbooleanfalseThis setting should be set to true when the underlying cache store supports transactions and it is desirable for the underlying store and the cache to remain synchronized. With this enabled any Exceptions thrown whilst writing to the underlying store will result in both the store's and cache's transactions rollingback.
preloadbooleanfalseIf true, when the cache starts, data stored in the cache store will be pre-loaded into memory. This is particularly useful when data in the cache store will be needed immediately after startup and you want to avoid cache operations being delayed as a result of loading this data lazily. Can be used to provide a 'warm-cache' on startup, however there is a performance penalty as startup time is affected by this process. Likewise in some cases you cannot pre-load data in caches stores, such as when using shared remote stores.
purgebooleanfalse Empties the specified cache loader at startup. Values are true / false (default). This property takes effect only if read-only is false.
read-onlybooleanfalse Prevents data from being persisted to cache stores. Values are true / false (default). If true, cache stores load entries only. Any modifications to data in the cache do not apply to cache stores.
write-onlybooleanfalse Prevents data from being loaded from cache stores. Values are true / false (default). If true, cache stores write entries only. Any retrievals of data in the cache do not read from the cache store.
max-batch-sizeint100 Sets the maximum size of a batch to insert or delete from the cache store. If the value is less than one, no upper limit applies to the number of operations in a batch.
segmentedbooleantrue Configures cache stores to store data in hash space segments, with the cache's "segments" attribute defining the number of segments.

write-behind?

Configures cache stores as write-behind instead of write-through.

NameTypeDefaultDescription
modification-queue-sizeint1024 Specifies the maximum number of entries in the asynchronous modification queue. When the queue is full, write-through mode is used until the queue can accept new entries.
thread-pool-sizeint1 Specifies the number of threads to apply modifications to the cache store.
fail-silentlybooleanfalse Controls how asynchronous write operations take place when cache stores become unavailable. If "true", asynchronous write operations that fail are re-attempted with the number of times specified in the "connection-attempts" parameter. If all attempts fail, errors are ignored and write operations are not executed on the cache store. If "false", asynchronous write operations that fail are re-attempted when the underlying store becomes available. If the modification queue becomes full before the underlying store becomes available, an error is thrown on all future write operations to the store until the modification queue is flushed. The modification queue is not persisted. If the underlying store does not become available before the asynchronous store is stopped, queued modifications are lost.

property*

Defines a cache store property with name and value.

single-file-store

Deprecated since 13.0. Defines a filesystem-based cache store that stores its elements in a single file.

NameTypeDefaultDescription
max-entriesint Specifies the maximum number of entries that the file store can hold. To increase the speed of lookups, Single File cache stores index keys and their locations in the file. To avoid excessive memory usage, you can configure the maximum number of entries so that entries are removed permanently from both memory and the cache store when the maximum is exceeded. However, this can lead to data loss. You should only set a maximum number of entries if data can be recomputed or retrieved from an authoritative data store. By default, the value is `-1` which means that there is no maximum number of entries.
pathstring Specifies a filesystem directory for data. The value can be a relative or absolute path. Relative paths are created relative to the configured global persistent location. Absolute paths must be subdirectories of the global persistent location, otherwise an exception is thrown.
NameTypeDefaultDescription
sharedbooleanfalseThis setting should be set to true when multiple cache instances share the same cache store (e.g., multiple nodes in a cluster using a JDBC-based CacheStore pointing to the same, shared database.) Setting this to true avoids multiple cache instances writing the same modification multiple times. If enabled, only the node where the modification originated will write to the cache store. If disabled, each individual cache reacts to a potential remote update by storing the data to the cache store.
transactionalbooleanfalseThis setting should be set to true when the underlying cache store supports transactions and it is desirable for the underlying store and the cache to remain synchronized. With this enabled any Exceptions thrown whilst writing to the underlying store will result in both the store's and cache's transactions rollingback.
preloadbooleanfalseIf true, when the cache starts, data stored in the cache store will be pre-loaded into memory. This is particularly useful when data in the cache store will be needed immediately after startup and you want to avoid cache operations being delayed as a result of loading this data lazily. Can be used to provide a 'warm-cache' on startup, however there is a performance penalty as startup time is affected by this process. Likewise in some cases you cannot pre-load data in caches stores, such as when using shared remote stores.
purgebooleanfalse Empties the specified cache loader at startup. Values are true / false (default). This property takes effect only if read-only is false.
read-onlybooleanfalse Prevents data from being persisted to cache stores. Values are true / false (default). If true, cache stores load entries only. Any modifications to data in the cache do not apply to cache stores.
write-onlybooleanfalse Prevents data from being loaded from cache stores. Values are true / false (default). If true, cache stores write entries only. Any retrievals of data in the cache do not read from the cache store.
max-batch-sizeint100 Sets the maximum size of a batch to insert or delete from the cache store. If the value is less than one, no upper limit applies to the number of operations in a batch.
segmentedbooleantrue Configures cache stores to store data in hash space segments, with the cache's "segments" attribute defining the number of segments.

write-behind?

Configures cache stores as write-behind instead of write-through.

NameTypeDefaultDescription
modification-queue-sizeint1024 Specifies the maximum number of entries in the asynchronous modification queue. When the queue is full, write-through mode is used until the queue can accept new entries.
thread-pool-sizeint1 Specifies the number of threads to apply modifications to the cache store.
fail-silentlybooleanfalse Controls how asynchronous write operations take place when cache stores become unavailable. If "true", asynchronous write operations that fail are re-attempted with the number of times specified in the "connection-attempts" parameter. If all attempts fail, errors are ignored and write operations are not executed on the cache store. If "false", asynchronous write operations that fail are re-attempted when the underlying store becomes available. If the modification queue becomes full before the underlying store becomes available, an error is thrown on all future write operations to the store until the modification queue is flushed. The modification queue is not persisted. If the underlying store does not become available before the asynchronous store is stopped, queued modifications are lost.

property*

Defines a cache store property with name and value.

memory?

Controls how the entries are stored in memory

NameTypeDefaultDescription
max-sizestring Defines the size of the data container in bytes. The default unit is B (bytes). You can optionally set one of the following units: KB (kilobytes), MB (megabytes), GB (gigabytes), TB (terabytes), KiB (kibibytes), MiB (mebibytes), GiB (gibibytes) and TiB (tebibytes). Eviction occurs when the approximate memory usage of the data container exceeds the maximum size.
max-countlong-1 Defines the size of the data container by number of entries. Eviction occurs after the container size exceeds the maximum count.
when-full
NONE Do not evict entries. If you define a size for the data container, you should specify either the REMOVE or EXCEPTION exiction strategy.
MANUAL Manually evict entries. This strategy is the same as NONE but does not log errors if you enable passivation without eviction.
REMOVE Automatically evict older entries to make space for new entries. By default REMOVE is always used when you define a size for the data container unless you configure the EXCEPTION strategy.
EXCEPTION Do not evict entries. If the data container reaches the maximum size, exceptions occur for requests to create new entries. You can use this eviction strategy only with transactional caches that use two phase commit.
UNORDEREDDeprecated. Activates REMOVE policy.
FIFODeprecated. Activates REMOVE policy.
LRUDeprecated. Activates REMOVE policy.
LIRSDeprecated. Activates REMOVE policy.
Specifies a strategy for evicting cache entries. Eviction always takes place when you define either the max-size or the max-count (but not both) for the data container. If no strategy is defined, but max-count or max-size is configured, REMOVE is used.
storage
HEAP Stores cache entries in JVM heap memory.
OFF_HEAP Stores cache entries as bytes in native memory outside the Java heap.
OBJECT Deprecated, only added in 11.0 to simplify the transition from the <object/> element. Please use HEAP instead.
BINARY Deprecated, only added in 11.0 to simplify the transition from the <binary/> element. Please use HEAP and set the encoding media type instead.
HEAP Defines the type of memory that the data container uses as storage.

query?

Defines query options for cache

NameTypeDefaultDescription
default-max-resultsinteger100 Limits the number of results returned by a query. Applies to indexed, non-indexed, and hybrid queries. Setting the default-max-results significantly improves performance of queries that don't have an explicit limit set.
hit-count-accuracyinteger10000 Limit the required accuracy of the hit count for the indexed queries to an upper-bound. Setting the hit-count-accuracy optimize the performance of queries targeting large data sets. For optimal results, set this value slightly above the expected hit count. If you do not require accurate hit counts, set it to a low value.

indexing?

Defines indexing options for cache

NameTypeDefaultDescription
enabledbooleanfalse Enables and disables cache indexing. Including the indexing element in cache configuration automatically enables indexing without the need to set the value of this attribute to "true". Indexing is also automatically enabled when the "auto-config" attribute is set to a value of "true".
storage
filesystemLocal filesystem index storage. This is the default.
local-heapJVM heap index storage, not persisted between restarts. Only suitable for small datasets with low concurrency.
filesystemSpecify index storage options.
startup-mode
purge Clears the index when the cache starts.
reindex Rebuilds the index when the cache starts.
auto Automatically triggers an indexing operation when the cache starts. If data is volatile and the index is persistent then the cache is cleared when it starts. If data is persistent and the index is volatile then the cache is reindexed when it starts.
none Cache startup does not trigger an indexing operation. This is the default value.
none Triggers an indexing process when the cache starts.
pathstring Specifies a filesystem path for the index when storage is 'filesystem'. The value can be a relative or absolute path. Relative paths are created relative to the configured global persistent location, or to the current working directory when global state is disabled. By default, the cache name is used as a relative path for index path. When setting a custom value, ensure that there are no conflicts between caches using the same indexed entities.
auto-configbooleanfalseDeprecated since 11.0, with no replacement. Whether or not to apply automatic index configuration based on cache type

index-reader?

Controls index reading parameters.

NameTypeDefaultDescription
refresh-intervallong0 Interval, in milliseconds, to reopen the index reader. By default, the index reader is refreshed on-demand during searches, if new entries were indexed since the last refresh. Configuring with a value larger than zero will make some queries results stale, but query throughput will increase substantially, specially in write heavy scenarios.

index-writer?

Controls index writing parameters

NameTypeDefaultDescription
commit-intervalint1000 Amount of time, in milliseconds, that index changes that are buffered in memory are flushed to the index storage and a commit is performed. Because operation is costly, small values should be avoided. The default is 1000 ms (1 second).
ram-buffer-sizeint32 Maximum amount of memory that can be used for buffering added entries and deletions before they are flushed to the index storage. Large values result in faster indexing but use more memory. For faster indexing performance you should set this attribute instead of `max-buffered-entries`. When used in combination with the `max-buffered-entries` attribute, a flush occurs for whichever event happens first.
max-buffered-entriesint32 Maximum number of entries that can be buffered in-memory before they are flushed to the index storage. Large values result in faster indexing but use more memory. When used in combination with the `ram-buffer-size` attribute, a flush occurs for whichever event happens first.
thread-pool-sizeint1 Number of threads that execute write operations to the index.
queue-countint1 Number of internal queues to use for each indexed type. Each queue holds a batch of modifications that is applied to the index and queues are processed in parallel. Increasing the number of queues will lead to an increase of indexing throughput, but only if the bottleneck is CPU. For optimum results, do not set a value for `queue-count` that is larger than the value for `thread-pool-size`.
queue-sizeint1000 Maximum number of elements each queue can hold. Increasing the `queue-size` value increases the amount of memory that is used during indexing operations. Setting a value that is too small can block indexing operations.
low-level-tracebooleanfalse Enables low-level trace information for indexing operations. Enabling this attribute substantially degrades performance. You should use this low-level tracing only as a last resource for troubleshooting.

index-merge?

Defines properties to control the merge of index segments. An index segment is not related to an Infinispan segment, but represents a section of index in the storage.

NameTypeDefaultDescription
max-entriesint Maximum number of entries that an index segment can have before merging. Segments with more than this number of entries are not merged. Smaller values perform better on frequently changing indexes, larger values provide better search performance if the index does not change often.
factorint Number of segments that are merged at once. With smaller values, merging happens more often, which uses more resources, but the total number of segments will be lower on average, increasing search performance. Larger values (greater than 10) are best for heavy writing scenarios.
min-sizeint Minimum target size of segments, in MB, for background merges. Segments smaller than this size are merged more aggressively. Setting a value that is too large might result in expensive merge operations, even though they are less frequent.
max-sizeint Maximum size of segments, in MB, for background merges. Segments larger than this size are never merged in the background. Settings this to a lower value helps reduce memory requirements and avoids some merging operations at the cost of optimal search speed. This attribute is ignored when forcefully merging an index and `max-forced-size` applies instead.
max-forced-sizeint maximum size of segments, in MB, for forced merges and overrides the `max-size` attribute. Set this to the same value as `max-size` or lower. However setting the value too low degrades search performance because documents are deleted.
calibrate-by-deletesboolean Whether the number of deleted entries in an index should be taken into account when counting the entries in the segment. Setting `false` will lead to more frequent merges caused by `max-entries`, but will more aggressively merge segments with many deleted documents, improving search performance.

key-transformers?

Defines the Transformers used to stringify keys for indexing with Lucene

key-transformer*

Defines the Transformer to use for the specified key class
NameTypeDefaultDescription
keystring
transformerstring

indexed-entities?

Defines the set of indexed type names (fully qualified). If values of types that are not included in this set are put in the cache they will not be indexed.

indexed-entity+

Indexed entity type name. Must be either a fully qualified Java class name or a protobuf type name.

property*

Property to pass on to the indexing system

custom-interceptors?

Deprecated since 10.0, will be removed without a replacement. Configures custom interceptors to be added to the cache.

interceptor*

Deprecated since 10.0, will be removed without a replacement.

NameTypeDefaultDescription
afterstringDictates that the custom interceptor appears immediately after the specified interceptor. If the specified interceptor is not found in the interceptor chain, a ConfigurationException will be thrown when the cache starts.
beforestringDictates that the custom interceptor appears immediately before the specified interceptor. If the specified interceptor is not found in the interceptor chain, a ConfigurationException will be thrown when the cache starts.
classstringA fully qualified class name of the new custom interceptor to add to the configuration.
indexintSpecifies a position in the interceptor chain to place the new interceptor. The index starts at 0 and goes up to the number of interceptors in a given configuration. A ConfigurationException is thrown if the index is less than 0 or greater than the maximum number of interceptors in the chain.
positionstringSpecifies a position where to place the new interceptor. Allowed values are FIRST, LAST, and OTHER_THAN_FIRST_OR_LAST

property?

security?

Configures cache-level security.

authorization?

Configures authorization for this cache.

NameTypeDefaultDescription
enabledbooleanfalse Enables authorization checks for this cache. Defaults to true if the authorization element is present.
roles Sets the valid roles required to access this cache.

replicated-cache-configuration

Defines a REPL_* mode cache configuration.

NameTypeDefaultDescription
segmentsint256 Sets the number of hash space segments per cluster. The default value is 256. The value should be at least 20 * the cluster size.
consistent-hash-factorystring Deprecated since 11.0. Will be removed in 14.0, the segment allocation will no longer be customizable. The factory to use for generating the consistent hash. Must implement `org.infinispan.distribution.ch.ConsistentHashFactory`. E.g. `org.infinispan.distribution.ch.impl.SyncConsistentHashFactory` can be used to guarantee that multiple distributed caches use exactly the same consistent hash, which for performance reasons is not guaranteed by the default consistent hash factory instance used.
key-partitionerstring The name of the key partitioner class. Must implement `org.infinispan.distribution.ch.KeyPartitioner`. A custom key partitioner can be used as an alternative to grouping, to guarantee that some keys are located in the same segment (and thus their primary owner is the same node). Since 8.2.

state-transfer?

The state transfer configuration for distribution and replicated caches.

NameTypeDefaultDescription
enabledbooleantrueIf enabled, this will cause the cache to ask neighboring caches for state when it starts up, so the cache starts 'warm', although it will impact startup time.
timeoutlong240000The maximum amount of time (ms) to wait for state from neighboring caches, before throwing an exception and aborting startup. Must be greater than or equal to 'remote-timeout' in the clustering configuration.
chunk-sizeinteger512The number of cache entries to batch in each transfer.
await-initial-transferbooleantrueIf enabled, this will cause the cache to wait for initial state transfer to complete before responding to requests.
NameTypeDefaultDescription
mode
ASYNC Enables asynchronous mode.
SYNC Enables synchronous mode.
SYNCSets the clustered cache mode, ASYNC for asynchronous operation, or SYNC for synchronous operation.
remote-timeoutlong15000In SYNC mode, the timeout (in ms) used to wait for an acknowledgment when making a remote call, after which the call is aborted and an exception is thrown.

partition-handling?

Configures the way this cache reacts to node crashes and split brains.

NameTypeDefaultDescription
enabledboolean Deprecated, use type instead. Enable/disable the partition handling functionality. Defaults to false.
when-split
DENY_READ_WRITES Allow read and write operations only if all replicas of an entry are in the partition. If a partition does not include all replicas of an entry, do not allow cache operations for that entry.
ALLOW_READS Allow read operations for entries and deny write operations unless the partition includes all replicas of an entry.
ALLOW_READ_WRITES Allow read and write operations on caches while a cluster is split into network partitions. Caches remain available and conflicts are resolved during merge.
ALLOW_READ_WRITESThe type of actions that are possible when a split brain scenario is encountered.
merge-policyNONEThe entry merge policy which should be applied on partition merges.
NameTypeDefaultDescription
nameIDUniquely identifies this cache within its cache container.
configurationIDREFThe name of the cache configuration which this configuration inherits from.
statisticsbooleanfalseDetermines whether or not the cache should collect statistics. Keep disabled for optimal performance.
statistics-availablebooleantrueIf set to false, statistics gathering cannot be enabled during runtime. Keep disabled for optimal performance.
unreliable-return-valuesbooleanfalse Specifies whether Infinispan is allowed to disregard the Map contract when providing return values for org.infinispan.Cache#put(Object, Object) and org.infinispan.Cache#remove(Object) methods.

backups?

Defines backup locations for cache data and modifies state transfer properties.

NameTypeDefaultDescription
merge-policyDEFAULT Specifies the fully qualified name of a class that implements the XSiteEntryMergePolicy interface or any of the alias. Use if for ASYNC strategy backup.
max-cleanup-delaypositiveInteger30000 Specifies the maximum delay, in milliseconds, between which tombstone cleanup tasks run. This attribute applies to the asynchronous backup strategy only.
tombstone-map-sizepositiveInteger512000 Specifies the target number of tombstones to store. If the current size of the tombstone map is greater than the target size, then cleanup tasks run more frequently. If the current size of the tombstone map is less than the target size, then cleanup tasks run less frequently. This attribute applies to the asynchronous backup strategy only.

backup*

Configures a remote site as a backup location for cache data.

NameTypeDefaultDescription
sitestring Names the remote site to which the cache backs up data.
strategy
ASYNC Enables asynchronous mode.
SYNC Enables synchronous mode.
ASYNC Sets the strategy for backing up to a remote site.
failure-policy
IGNORE Ignore failed backup operations and write to the local cache.
WARN Log exceptions when backup operations fail and write to the local cache.
FAIL Throw exceptions when backup operations fail and attempt to stop writes to the local cache.
CUSTOM Use a custom failure policy. Requires the "failure-policy-class" attribute.
WARN Controls how local writes to caches are handled if synchronous backup operations fail.
timeoutlong15000 Specifies timeout, in milliseconds, for synchronous and asynchronous backup operations.
two-phase-commitbooleanfalse Enables two-phase commits for optimistic transactional caches with the synchronous backup strategy only.
failure-policy-classstring Specifies the fully qualified name of a class that implements the CustomFailurePolicy interface. Use if failure-policy="CUSTOM".

take-offline?

Specifies the number of failures that can occur before backup locations go offline.

NameTypeDefaultDescription
after-failuresint0 Sets the number of consecutive failures that can occur for backup operations before sites go offline. Specify a negative or zero value to ignore this attribute and use minimum wait time only ("min-wait").
min-waitlong0 Sets the minimum time to wait, in milliseconds, before sites go offline when backup operations fail. If subsequent operations are successful, the minimum wait time is reset. If you set "after-failures", sites go offline when the wait time is reached and the number of failures occur.

state-transfer?

Modifies state transfer operations.

NameTypeDefaultDescription
chunk-sizeint512 Specifies how many cache entries are batched in each transfer request.
timeoutlong1200000 The time (in milliseconds) to wait for the backup site acknowledge the state chunk received and applied. Default value is 20 min.
max-retriesint30 Sets the maximum number of retry attempts for push state failures. Specify a value of 0 (zero) to disable retry attempts. The default value is 30.
wait-timelong2000 Sets the amount of time, in milliseconds, to wait between retry attempts for push state failures. You must specify a value of 1 or more. The default value is 2000.
mode
MANUAL Users must bring backup locations online and initiate state transfer between remote sites.
AUTO Backup locations that use the asynchronous backup strategy can automatically come back online. State transfer operations begin when the remote site connections are stable.
MANUAL Controls whether cross-site state transfer happens manually on user action, which is the default, or automatically when backup locations come online.

backup-for?

Defines the local cache as a backup for a remote cache with a different name.

NameTypeDefaultDescription
remote-cachestring Specifies the name of the remote cache that uses the local cache as a backup.
remote-sitestring Specifies the name of the remote site that backs up data to the local cache.

encoding?

The cache encoding configuration.

Defines content type and encoding for keys and values of the cache.
NameTypeDefaultDescription
media-typestring The media type for both keys and values. When present, takes precedence over the individual configurations for keys and values.

key?

Describes the content-type and encoding.
NameTypeDefaultDescription
media-typestring

value?

Describes the content-type and encoding.
NameTypeDefaultDescription
media-typestring

locking?

The locking configuration of the cache.

NameTypeDefaultDescription
isolation
NONENo locking isolation will be performed. This is only valid in local mode. In clustered mode, READ_COMMITTED will be used instead.
READ_UNCOMMITTEDUnsupported. Actually configures READ_COMMITTED
READ_COMMITTEDRead committed is an isolation level that guarantees that any data read is committed at the moment it is read. However, depending on the outcome of other transactions, successive reads may return different results
REPEATABLE_READRepeatable read is an isolation level that guarantees that any data read is committed at the moment it is read and that, within a transaction, successive reads will always return the same data.
SERIALIZABLEUnsupported. Actually configures REPEATABLE_READ
REPEATABLE_READSets the cache locking isolation level. Infinispan only supports READ_COMMITTED or REPEATABLE_READ isolation level.
stripingbooleanfalseIf true, a pool of shared locks is maintained for all entries that need to be locked. Otherwise, a lock is created per entry in the cache. Lock striping helps control memory footprint but may reduce concurrency in the system.
acquire-timeoutlong10000Maximum time to attempt a particular lock acquisition.
concurrency-levelint32Concurrency level for lock containers. Adjust this value according to the number of concurrent threads interacting with Infinispan.

transaction?

The cache transaction configuration.

NameTypeDefaultDescription
mode
NONECache will not enlist within transactions.
BATCHUses batching to group cache operations together.
NON_XACache will enlist within transactions as a javax.transaction.Synchronization
NON_DURABLE_XACache will enlist within transactions as a javax.transaction.xa.XAResource, without recovery.
FULL_XACache will enlist within transactions as a javax.transaction.xa.XAResource, with recovery.
NONESets the cache transaction mode to one of NONE, BATCH, NON_XA, NON_DURABLE_XA, FULL_XA.
stop-timeoutlong30000If there are any ongoing transactions when a cache is stopped, Infinispan waits for ongoing remote and local transactions to finish. The amount of time to wait for is defined by the cache stop timeout.
locking
OPTIMISTICEnables Optimistic locking.
PESSIMISTICEnables Pessimistic locking.
OPTIMISTICThe locking mode for this cache, one of OPTIMISTIC or PESSIMISTIC.
transaction-manager-lookupstringorg.infinispan.transaction.lookup.GenericTransactionManagerLookup Configure Transaction manager lookup directly using an instance of TransactionManagerLookup. Calling this method marks the cache as transactional.
complete-timeoutlong60000 The duration (millis) in which to keep information about the completion of a transaction. Defaults to 60000.
reaper-intervallong30000 The time interval (millis) at which the thread that cleans up transaction completion information kicks in. Defaults to 30000.
auto-commitbooleantrue If the cache is transactional and transactionAutoCommit is enabled then for single operation transactions the user doesn't need to manually start a transaction, but a transactions is injected by the system. Defaults to true.
recovery-cachestring__recoveryInfoCacheName__ Sets the name of the cache where recovery related information is held. The cache's default name is "__recoveryInfoCacheName__"
notificationsbooleantrue Enables or disables triggering transactional notifications on cache listeners. By default is enabled.

expiration?

The cache expiration configuration.

NameTypeDefaultDescription
max-idlelong-1 Specifies the maximum amount of time, in milliseconds, that cache entries can remain idle. If no operations are performed on entries within the maximum idle time, the entries expire across the cluster. A value of 0 or -1 disables expiration.
lifespanlong-1 Specifies the maximum amount of time, in milliseconds, that cache entries can exist. After reaching their lifespan, cache entries expire across the cluster. A value of 0 or -1 disables expiration.
intervallong60000 Specifies the interval, in milliseconds, between expiration runs. A value of 0 or -1 disables the expiration reaper.
touch
SYNCDelays read operations until the other owners confirm that the timestamp for the entry is updated.
ASYNC Sends touch commands to other owners without waiting for confirmation. This mode allows read operations to return the value of a key even if another node has started expiring it. When that occurs, the read operation does not extend the lifespan of the key.
SYNC Controls how timestamps get updated for entries in clustered caches with maximum idle expiration. The default value is SYNC. This attribute applies only to caches that use synchronous mode. Timestamps are updated asynchronously for caches that use asynchronous mode.

store-as-binary?

Configures the cache to store data in binary format.

Controls whether when stored in memory, keys and values are stored as references to their original objects, or in a serialized, binary format. There are benefits to both approaches, but often if used in a clustered mode, storing objects as binary means that the cost of serialization happens early on, and can be amortized. Further, deserialization costs are incurred lazily which improves throughput. It is possible to control this on a fine-grained basis: you can choose to just store keys or values as binary, or both. DEPRECATED: please use memory element instead
NameTypeDefaultDescription
keysboolean Specify whether keys are stored as binary or not. Enabled by default if the "enabled" attribute is set to true.
valuesboolean Specify whether values are stored as binary or not. Enabled by default if the "enabled" attribute is set to true.

persistence?

Configures the persistence layer for caches.

NameTypeDefaultDescription
passivationbooleanfalse Enables passivation so that data is written to cache stores only if it is evicted from memory. Subsequent requests for passivated entries restore them to memory and remove them from persistent storage. If you do not enable passivation, writes to entries in memory result in writes to cache stores.
connection-attemptsint10 Sets the maximum number of attempts to start each configured `CacheWriter` or `CacheLoader`. An exception is thrown and the cache does not start if the number of connection attempts exceeds the maximum.
connection-intervalint50 Specifies the time, in milliseconds, to wait between connection attempts on startup. A negative or zero value means no wait between connection attempts.
availability-intervalint1000 Specifies the time, in milliseconds, between availability checks to determine if the PersistenceManager is available. In other words, this interval sets how often stores and loaders are polled via their `org.infinispan.persistence.spi.CacheWriter#isAvailable` or `org.infinispan.persistence.spi.CacheLoader#isAvailable` implementation. If a single store or loader is not available, an exception is thrown during cache operations.

cluster-loader

Defines a cluster cache loader.

NameTypeDefaultDescription
remote-timeoutlong15000The timeout when performing remote calls.
NameTypeDefaultDescription
namestringUnused XML attribute.
sharedbooleanfalse Determines if a cache loader is shared between cache instances. Values are true / false (default). This property prevents duplicate writes of data to the cache loader by different cache instances. An example is where all cache instances in a cluster use the same JDBC settings for the same remote, shared database. If true, only the nodes where modifications originate write to the cache store. If false, each cache reacts to potential remote updates by storing the data to the cache store.
preloadbooleanfalse Pre-loads data into memory from the cache loader when the cache starts. Values are true / false (default). This property is useful when data in the cache loader is required immediately after startup to prevent delays with cache operations when the data is loaded lazily. This property can provide a "warm cache" on startup but it impacts performance because it affects start time. Pre-loading data is done locally, so any data loaded is stored locally in the node only. Pre-loaded data is not replicated or distributed. Likewise, data is pre-loaded only up to the maximum configured number of entries in eviction.

property*

A cache loader property with name and value.

store

Defines a custom cache store.

NameTypeDefaultDescription
classstringDefines the class name of a cache store that implements either `CacheLoader`, `CacheWriter`, or both.
NameTypeDefaultDescription
sharedbooleanfalseThis setting should be set to true when multiple cache instances share the same cache store (e.g., multiple nodes in a cluster using a JDBC-based CacheStore pointing to the same, shared database.) Setting this to true avoids multiple cache instances writing the same modification multiple times. If enabled, only the node where the modification originated will write to the cache store. If disabled, each individual cache reacts to a potential remote update by storing the data to the cache store.
transactionalbooleanfalseThis setting should be set to true when the underlying cache store supports transactions and it is desirable for the underlying store and the cache to remain synchronized. With this enabled any Exceptions thrown whilst writing to the underlying store will result in both the store's and cache's transactions rollingback.
preloadbooleanfalseIf true, when the cache starts, data stored in the cache store will be pre-loaded into memory. This is particularly useful when data in the cache store will be needed immediately after startup and you want to avoid cache operations being delayed as a result of loading this data lazily. Can be used to provide a 'warm-cache' on startup, however there is a performance penalty as startup time is affected by this process. Likewise in some cases you cannot pre-load data in caches stores, such as when using shared remote stores.
purgebooleanfalse Empties the specified cache loader at startup. Values are true / false (default). This property takes effect only if read-only is false.
read-onlybooleanfalse Prevents data from being persisted to cache stores. Values are true / false (default). If true, cache stores load entries only. Any modifications to data in the cache do not apply to cache stores.
write-onlybooleanfalse Prevents data from being loaded from cache stores. Values are true / false (default). If true, cache stores write entries only. Any retrievals of data in the cache do not read from the cache store.
max-batch-sizeint100 Sets the maximum size of a batch to insert or delete from the cache store. If the value is less than one, no upper limit applies to the number of operations in a batch.
segmentedbooleantrue Configures cache stores to store data in hash space segments, with the cache's "segments" attribute defining the number of segments.

write-behind?

Configures cache stores as write-behind instead of write-through.

NameTypeDefaultDescription
modification-queue-sizeint1024 Specifies the maximum number of entries in the asynchronous modification queue. When the queue is full, write-through mode is used until the queue can accept new entries.
thread-pool-sizeint1 Specifies the number of threads to apply modifications to the cache store.
fail-silentlybooleanfalse Controls how asynchronous write operations take place when cache stores become unavailable. If "true", asynchronous write operations that fail are re-attempted with the number of times specified in the "connection-attempts" parameter. If all attempts fail, errors are ignored and write operations are not executed on the cache store. If "false", asynchronous write operations that fail are re-attempted when the underlying store becomes available. If the modification queue becomes full before the underlying store becomes available, an error is thrown on all future write operations to the store until the modification queue is flushed. The modification queue is not persisted. If the underlying store does not become available before the asynchronous store is stopped, queued modifications are lost.

property*

Defines a cache store property with name and value.

file-store

Defines a filesystem-based cache store.

NameTypeDefaultDescription
max-entriesint Deprecated since 13.0 which ignores the property. Specifies the maximum number of entries that the file store can hold. To increase the speed of lookups, Single File cache stores index keys and their locations in the file. To avoid excessive memory usage, you can configure the maximum number of entries so that entries are removed permanently from both memory and the cache store when the maximum is exceeded. However, this can lead to data loss. You should only set a maximum number of entries if data can be recomputed or retrieved from an authoritative data store. By default, the value is `-1` which means that there is no maximum number of entries. Deprecated since 13.0, will be removed in 16.0.
pathstring Specifies a filesystem directory for data. The value can be a relative or absolute path. Relative paths are created relative to the configured global persistent location. Absolute paths must be subdirectories of the global persistent location, otherwise an exception is thrown.
open-files-limitint1000 Max number of data and index files opened for reading (current log file and compaction output are not included here - always uses one each). Index files will use 1/10th of list limit with a minimum of 1 and a maximum equal to the number of cache segments.
compaction-thresholddouble0.5 If amount of unused space in some data file gets above this threshold, the file is compacted - entries from that file are copied to a new file and the old file is deleted.

index?

Configure where and how should be the index stored.
NameTypeDefaultDescription
pathstring A location where the store keeps index - this does not have be persistent across restarts, and SSD storage is recommended (the index is accessed randomly).
segmentsint3 Deprecated since 15.0 which ignores the property. This value is ignored as we create an index file per cache segment instead.
max-queue-lengthint1000 Max number of entry writes that are waiting to be written to the index, per index segment.
max-node-sizeint4096 Max size of node (continuous block on filesystem used in index implementation), in bytes.
min-node-sizeint0 If the size of node (continuous block on filesystem used in index implementation) drops below this threshold, the node will try to balance its size with some neighbour node, possibly causing join of multiple nodes.

data?

Configure where and how should be the entries stored - this is the persistent location.
NameTypeDefaultDescription
pathstring A location on disk where the store writes entries. Files are written sequentially, reads are random.
max-file-sizeint16777216 Max size of single file with entries, in bytes.
sync-writesbooleanfalse If true, the write is confirmed only after the entry is fsynced on disk.
NameTypeDefaultDescription
sharedbooleanfalseThis setting should be set to true when multiple cache instances share the same cache store (e.g., multiple nodes in a cluster using a JDBC-based CacheStore pointing to the same, shared database.) Setting this to true avoids multiple cache instances writing the same modification multiple times. If enabled, only the node where the modification originated will write to the cache store. If disabled, each individual cache reacts to a potential remote update by storing the data to the cache store.
transactionalbooleanfalseThis setting should be set to true when the underlying cache store supports transactions and it is desirable for the underlying store and the cache to remain synchronized. With this enabled any Exceptions thrown whilst writing to the underlying store will result in both the store's and cache's transactions rollingback.
preloadbooleanfalseIf true, when the cache starts, data stored in the cache store will be pre-loaded into memory. This is particularly useful when data in the cache store will be needed immediately after startup and you want to avoid cache operations being delayed as a result of loading this data lazily. Can be used to provide a 'warm-cache' on startup, however there is a performance penalty as startup time is affected by this process. Likewise in some cases you cannot pre-load data in caches stores, such as when using shared remote stores.
purgebooleanfalse Empties the specified cache loader at startup. Values are true / false (default). This property takes effect only if read-only is false.
read-onlybooleanfalse Prevents data from being persisted to cache stores. Values are true / false (default). If true, cache stores load entries only. Any modifications to data in the cache do not apply to cache stores.
write-onlybooleanfalse Prevents data from being loaded from cache stores. Values are true / false (default). If true, cache stores write entries only. Any retrievals of data in the cache do not read from the cache store.
max-batch-sizeint100 Sets the maximum size of a batch to insert or delete from the cache store. If the value is less than one, no upper limit applies to the number of operations in a batch.
segmentedbooleantrue Configures cache stores to store data in hash space segments, with the cache's "segments" attribute defining the number of segments.

write-behind?

Configures cache stores as write-behind instead of write-through.

NameTypeDefaultDescription
modification-queue-sizeint1024 Specifies the maximum number of entries in the asynchronous modification queue. When the queue is full, write-through mode is used until the queue can accept new entries.
thread-pool-sizeint1 Specifies the number of threads to apply modifications to the cache store.
fail-silentlybooleanfalse Controls how asynchronous write operations take place when cache stores become unavailable. If "true", asynchronous write operations that fail are re-attempted with the number of times specified in the "connection-attempts" parameter. If all attempts fail, errors are ignored and write operations are not executed on the cache store. If "false", asynchronous write operations that fail are re-attempted when the underlying store becomes available. If the modification queue becomes full before the underlying store becomes available, an error is thrown on all future write operations to the store until the modification queue is flushed. The modification queue is not persisted. If the underlying store does not become available before the asynchronous store is stopped, queued modifications are lost.

property*

Defines a cache store property with name and value.

single-file-store

Deprecated since 13.0. Defines a filesystem-based cache store that stores its elements in a single file.

NameTypeDefaultDescription
max-entriesint Specifies the maximum number of entries that the file store can hold. To increase the speed of lookups, Single File cache stores index keys and their locations in the file. To avoid excessive memory usage, you can configure the maximum number of entries so that entries are removed permanently from both memory and the cache store when the maximum is exceeded. However, this can lead to data loss. You should only set a maximum number of entries if data can be recomputed or retrieved from an authoritative data store. By default, the value is `-1` which means that there is no maximum number of entries.
pathstring Specifies a filesystem directory for data. The value can be a relative or absolute path. Relative paths are created relative to the configured global persistent location. Absolute paths must be subdirectories of the global persistent location, otherwise an exception is thrown.
NameTypeDefaultDescription
sharedbooleanfalseThis setting should be set to true when multiple cache instances share the same cache store (e.g., multiple nodes in a cluster using a JDBC-based CacheStore pointing to the same, shared database.) Setting this to true avoids multiple cache instances writing the same modification multiple times. If enabled, only the node where the modification originated will write to the cache store. If disabled, each individual cache reacts to a potential remote update by storing the data to the cache store.
transactionalbooleanfalseThis setting should be set to true when the underlying cache store supports transactions and it is desirable for the underlying store and the cache to remain synchronized. With this enabled any Exceptions thrown whilst writing to the underlying store will result in both the store's and cache's transactions rollingback.
preloadbooleanfalseIf true, when the cache starts, data stored in the cache store will be pre-loaded into memory. This is particularly useful when data in the cache store will be needed immediately after startup and you want to avoid cache operations being delayed as a result of loading this data lazily. Can be used to provide a 'warm-cache' on startup, however there is a performance penalty as startup time is affected by this process. Likewise in some cases you cannot pre-load data in caches stores, such as when using shared remote stores.
purgebooleanfalse Empties the specified cache loader at startup. Values are true / false (default). This property takes effect only if read-only is false.
read-onlybooleanfalse Prevents data from being persisted to cache stores. Values are true / false (default). If true, cache stores load entries only. Any modifications to data in the cache do not apply to cache stores.
write-onlybooleanfalse Prevents data from being loaded from cache stores. Values are true / false (default). If true, cache stores write entries only. Any retrievals of data in the cache do not read from the cache store.
max-batch-sizeint100 Sets the maximum size of a batch to insert or delete from the cache store. If the value is less than one, no upper limit applies to the number of operations in a batch.
segmentedbooleantrue Configures cache stores to store data in hash space segments, with the cache's "segments" attribute defining the number of segments.

write-behind?

Configures cache stores as write-behind instead of write-through.

NameTypeDefaultDescription
modification-queue-sizeint1024 Specifies the maximum number of entries in the asynchronous modification queue. When the queue is full, write-through mode is used until the queue can accept new entries.
thread-pool-sizeint1 Specifies the number of threads to apply modifications to the cache store.
fail-silentlybooleanfalse Controls how asynchronous write operations take place when cache stores become unavailable. If "true", asynchronous write operations that fail are re-attempted with the number of times specified in the "connection-attempts" parameter. If all attempts fail, errors are ignored and write operations are not executed on the cache store. If "false", asynchronous write operations that fail are re-attempted when the underlying store becomes available. If the modification queue becomes full before the underlying store becomes available, an error is thrown on all future write operations to the store until the modification queue is flushed. The modification queue is not persisted. If the underlying store does not become available before the asynchronous store is stopped, queued modifications are lost.

property*

Defines a cache store property with name and value.

memory?

Controls how the entries are stored in memory

NameTypeDefaultDescription
max-sizestring Defines the size of the data container in bytes. The default unit is B (bytes). You can optionally set one of the following units: KB (kilobytes), MB (megabytes), GB (gigabytes), TB (terabytes), KiB (kibibytes), MiB (mebibytes), GiB (gibibytes) and TiB (tebibytes). Eviction occurs when the approximate memory usage of the data container exceeds the maximum size.
max-countlong-1 Defines the size of the data container by number of entries. Eviction occurs after the container size exceeds the maximum count.
when-full
NONE Do not evict entries. If you define a size for the data container, you should specify either the REMOVE or EXCEPTION exiction strategy.
MANUAL Manually evict entries. This strategy is the same as NONE but does not log errors if you enable passivation without eviction.
REMOVE Automatically evict older entries to make space for new entries. By default REMOVE is always used when you define a size for the data container unless you configure the EXCEPTION strategy.
EXCEPTION Do not evict entries. If the data container reaches the maximum size, exceptions occur for requests to create new entries. You can use this eviction strategy only with transactional caches that use two phase commit.
UNORDEREDDeprecated. Activates REMOVE policy.
FIFODeprecated. Activates REMOVE policy.
LRUDeprecated. Activates REMOVE policy.
LIRSDeprecated. Activates REMOVE policy.
Specifies a strategy for evicting cache entries. Eviction always takes place when you define either the max-size or the max-count (but not both) for the data container. If no strategy is defined, but max-count or max-size is configured, REMOVE is used.
storage
HEAP Stores cache entries in JVM heap memory.
OFF_HEAP Stores cache entries as bytes in native memory outside the Java heap.
OBJECT Deprecated, only added in 11.0 to simplify the transition from the <object/> element. Please use HEAP instead.
BINARY Deprecated, only added in 11.0 to simplify the transition from the <binary/> element. Please use HEAP and set the encoding media type instead.
HEAP Defines the type of memory that the data container uses as storage.

query?

Defines query options for cache

NameTypeDefaultDescription
default-max-resultsinteger100 Limits the number of results returned by a query. Applies to indexed, non-indexed, and hybrid queries. Setting the default-max-results significantly improves performance of queries that don't have an explicit limit set.
hit-count-accuracyinteger10000 Limit the required accuracy of the hit count for the indexed queries to an upper-bound. Setting the hit-count-accuracy optimize the performance of queries targeting large data sets. For optimal results, set this value slightly above the expected hit count. If you do not require accurate hit counts, set it to a low value.

indexing?

Defines indexing options for cache

NameTypeDefaultDescription
enabledbooleanfalse Enables and disables cache indexing. Including the indexing element in cache configuration automatically enables indexing without the need to set the value of this attribute to "true". Indexing is also automatically enabled when the "auto-config" attribute is set to a value of "true".
storage
filesystemLocal filesystem index storage. This is the default.
local-heapJVM heap index storage, not persisted between restarts. Only suitable for small datasets with low concurrency.
filesystemSpecify index storage options.
startup-mode
purge Clears the index when the cache starts.
reindex Rebuilds the index when the cache starts.
auto Automatically triggers an indexing operation when the cache starts. If data is volatile and the index is persistent then the cache is cleared when it starts. If data is persistent and the index is volatile then the cache is reindexed when it starts.
none Cache startup does not trigger an indexing operation. This is the default value.
none Triggers an indexing process when the cache starts.
pathstring Specifies a filesystem path for the index when storage is 'filesystem'. The value can be a relative or absolute path. Relative paths are created relative to the configured global persistent location, or to the current working directory when global state is disabled. By default, the cache name is used as a relative path for index path. When setting a custom value, ensure that there are no conflicts between caches using the same indexed entities.
auto-configbooleanfalseDeprecated since 11.0, with no replacement. Whether or not to apply automatic index configuration based on cache type

index-reader?

Controls index reading parameters.

NameTypeDefaultDescription
refresh-intervallong0 Interval, in milliseconds, to reopen the index reader. By default, the index reader is refreshed on-demand during searches, if new entries were indexed since the last refresh. Configuring with a value larger than zero will make some queries results stale, but query throughput will increase substantially, specially in write heavy scenarios.

index-writer?

Controls index writing parameters

NameTypeDefaultDescription
commit-intervalint1000 Amount of time, in milliseconds, that index changes that are buffered in memory are flushed to the index storage and a commit is performed. Because operation is costly, small values should be avoided. The default is 1000 ms (1 second).
ram-buffer-sizeint32 Maximum amount of memory that can be used for buffering added entries and deletions before they are flushed to the index storage. Large values result in faster indexing but use more memory. For faster indexing performance you should set this attribute instead of `max-buffered-entries`. When used in combination with the `max-buffered-entries` attribute, a flush occurs for whichever event happens first.
max-buffered-entriesint32 Maximum number of entries that can be buffered in-memory before they are flushed to the index storage. Large values result in faster indexing but use more memory. When used in combination with the `ram-buffer-size` attribute, a flush occurs for whichever event happens first.
thread-pool-sizeint1 Number of threads that execute write operations to the index.
queue-countint1 Number of internal queues to use for each indexed type. Each queue holds a batch of modifications that is applied to the index and queues are processed in parallel. Increasing the number of queues will lead to an increase of indexing throughput, but only if the bottleneck is CPU. For optimum results, do not set a value for `queue-count` that is larger than the value for `thread-pool-size`.
queue-sizeint1000 Maximum number of elements each queue can hold. Increasing the `queue-size` value increases the amount of memory that is used during indexing operations. Setting a value that is too small can block indexing operations.
low-level-tracebooleanfalse Enables low-level trace information for indexing operations. Enabling this attribute substantially degrades performance. You should use this low-level tracing only as a last resource for troubleshooting.

index-merge?

Defines properties to control the merge of index segments. An index segment is not related to an Infinispan segment, but represents a section of index in the storage.

NameTypeDefaultDescription
max-entriesint Maximum number of entries that an index segment can have before merging. Segments with more than this number of entries are not merged. Smaller values perform better on frequently changing indexes, larger values provide better search performance if the index does not change often.
factorint Number of segments that are merged at once. With smaller values, merging happens more often, which uses more resources, but the total number of segments will be lower on average, increasing search performance. Larger values (greater than 10) are best for heavy writing scenarios.
min-sizeint Minimum target size of segments, in MB, for background merges. Segments smaller than this size are merged more aggressively. Setting a value that is too large might result in expensive merge operations, even though they are less frequent.
max-sizeint Maximum size of segments, in MB, for background merges. Segments larger than this size are never merged in the background. Settings this to a lower value helps reduce memory requirements and avoids some merging operations at the cost of optimal search speed. This attribute is ignored when forcefully merging an index and `max-forced-size` applies instead.
max-forced-sizeint maximum size of segments, in MB, for forced merges and overrides the `max-size` attribute. Set this to the same value as `max-size` or lower. However setting the value too low degrades search performance because documents are deleted.
calibrate-by-deletesboolean Whether the number of deleted entries in an index should be taken into account when counting the entries in the segment. Setting `false` will lead to more frequent merges caused by `max-entries`, but will more aggressively merge segments with many deleted documents, improving search performance.

key-transformers?

Defines the Transformers used to stringify keys for indexing with Lucene

key-transformer*

Defines the Transformer to use for the specified key class
NameTypeDefaultDescription
keystring
transformerstring

indexed-entities?

Defines the set of indexed type names (fully qualified). If values of types that are not included in this set are put in the cache they will not be indexed.

indexed-entity+

Indexed entity type name. Must be either a fully qualified Java class name or a protobuf type name.

property*

Property to pass on to the indexing system

custom-interceptors?

Deprecated since 10.0, will be removed without a replacement. Configures custom interceptors to be added to the cache.

interceptor*

Deprecated since 10.0, will be removed without a replacement.

NameTypeDefaultDescription
afterstringDictates that the custom interceptor appears immediately after the specified interceptor. If the specified interceptor is not found in the interceptor chain, a ConfigurationException will be thrown when the cache starts.
beforestringDictates that the custom interceptor appears immediately before the specified interceptor. If the specified interceptor is not found in the interceptor chain, a ConfigurationException will be thrown when the cache starts.
classstringA fully qualified class name of the new custom interceptor to add to the configuration.
indexintSpecifies a position in the interceptor chain to place the new interceptor. The index starts at 0 and goes up to the number of interceptors in a given configuration. A ConfigurationException is thrown if the index is less than 0 or greater than the maximum number of interceptors in the chain.
positionstringSpecifies a position where to place the new interceptor. Allowed values are FIRST, LAST, and OTHER_THAN_FIRST_OR_LAST

property?

security?

Configures cache-level security.

authorization?

Configures authorization for this cache.

NameTypeDefaultDescription
enabledbooleanfalse Enables authorization checks for this cache. Defaults to true if the authorization element is present.
roles Sets the valid roles required to access this cache.

invalidation-cache

Defines an INVALIDATION_* mode cache.

NameTypeDefaultDescription
mode
ASYNC Enables asynchronous mode.
SYNC Enables synchronous mode.
SYNCSets the clustered cache mode, ASYNC for asynchronous operation, or SYNC for synchronous operation.
remote-timeoutlong15000In SYNC mode, the timeout (in ms) used to wait for an acknowledgment when making a remote call, after which the call is aborted and an exception is thrown.

partition-handling?

Configures the way this cache reacts to node crashes and split brains.

NameTypeDefaultDescription
enabledboolean Deprecated, use type instead. Enable/disable the partition handling functionality. Defaults to false.
when-split
DENY_READ_WRITES Allow read and write operations only if all replicas of an entry are in the partition. If a partition does not include all replicas of an entry, do not allow cache operations for that entry.
ALLOW_READS Allow read operations for entries and deny write operations unless the partition includes all replicas of an entry.
ALLOW_READ_WRITES Allow read and write operations on caches while a cluster is split into network partitions. Caches remain available and conflicts are resolved during merge.
ALLOW_READ_WRITESThe type of actions that are possible when a split brain scenario is encountered.
merge-policyNONEThe entry merge policy which should be applied on partition merges.
NameTypeDefaultDescription
nameIDUniquely identifies this cache within its cache container.
configurationIDREFThe name of the cache configuration which this configuration inherits from.
statisticsbooleanfalseDetermines whether or not the cache should collect statistics. Keep disabled for optimal performance.
statistics-availablebooleantrueIf set to false, statistics gathering cannot be enabled during runtime. Keep disabled for optimal performance.
unreliable-return-valuesbooleanfalse Specifies whether Infinispan is allowed to disregard the Map contract when providing return values for org.infinispan.Cache#put(Object, Object) and org.infinispan.Cache#remove(Object) methods.

backups?

Defines backup locations for cache data and modifies state transfer properties.

NameTypeDefaultDescription
merge-policyDEFAULT Specifies the fully qualified name of a class that implements the XSiteEntryMergePolicy interface or any of the alias. Use if for ASYNC strategy backup.
max-cleanup-delaypositiveInteger30000 Specifies the maximum delay, in milliseconds, between which tombstone cleanup tasks run. This attribute applies to the asynchronous backup strategy only.
tombstone-map-sizepositiveInteger512000 Specifies the target number of tombstones to store. If the current size of the tombstone map is greater than the target size, then cleanup tasks run more frequently. If the current size of the tombstone map is less than the target size, then cleanup tasks run less frequently. This attribute applies to the asynchronous backup strategy only.

backup*

Configures a remote site as a backup location for cache data.

NameTypeDefaultDescription
sitestring Names the remote site to which the cache backs up data.
strategy
ASYNC Enables asynchronous mode.
SYNC Enables synchronous mode.
ASYNC Sets the strategy for backing up to a remote site.
failure-policy
IGNORE Ignore failed backup operations and write to the local cache.
WARN Log exceptions when backup operations fail and write to the local cache.
FAIL Throw exceptions when backup operations fail and attempt to stop writes to the local cache.
CUSTOM Use a custom failure policy. Requires the "failure-policy-class" attribute.
WARN Controls how local writes to caches are handled if synchronous backup operations fail.
timeoutlong15000 Specifies timeout, in milliseconds, for synchronous and asynchronous backup operations.
two-phase-commitbooleanfalse Enables two-phase commits for optimistic transactional caches with the synchronous backup strategy only.
failure-policy-classstring Specifies the fully qualified name of a class that implements the CustomFailurePolicy interface. Use if failure-policy="CUSTOM".

take-offline?

Specifies the number of failures that can occur before backup locations go offline.

NameTypeDefaultDescription
after-failuresint0 Sets the number of consecutive failures that can occur for backup operations before sites go offline. Specify a negative or zero value to ignore this attribute and use minimum wait time only ("min-wait").
min-waitlong0 Sets the minimum time to wait, in milliseconds, before sites go offline when backup operations fail. If subsequent operations are successful, the minimum wait time is reset. If you set "after-failures", sites go offline when the wait time is reached and the number of failures occur.

state-transfer?

Modifies state transfer operations.

NameTypeDefaultDescription
chunk-sizeint512 Specifies how many cache entries are batched in each transfer request.
timeoutlong1200000 The time (in milliseconds) to wait for the backup site acknowledge the state chunk received and applied. Default value is 20 min.
max-retriesint30 Sets the maximum number of retry attempts for push state failures. Specify a value of 0 (zero) to disable retry attempts. The default value is 30.
wait-timelong2000 Sets the amount of time, in milliseconds, to wait between retry attempts for push state failures. You must specify a value of 1 or more. The default value is 2000.
mode
MANUAL Users must bring backup locations online and initiate state transfer between remote sites.
AUTO Backup locations that use the asynchronous backup strategy can automatically come back online. State transfer operations begin when the remote site connections are stable.
MANUAL Controls whether cross-site state transfer happens manually on user action, which is the default, or automatically when backup locations come online.

backup-for?

Defines the local cache as a backup for a remote cache with a different name.

NameTypeDefaultDescription
remote-cachestring Specifies the name of the remote cache that uses the local cache as a backup.
remote-sitestring Specifies the name of the remote site that backs up data to the local cache.

encoding?

The cache encoding configuration.

Defines content type and encoding for keys and values of the cache.
NameTypeDefaultDescription
media-typestring The media type for both keys and values. When present, takes precedence over the individual configurations for keys and values.

key?

Describes the content-type and encoding.
NameTypeDefaultDescription
media-typestring

value?

Describes the content-type and encoding.
NameTypeDefaultDescription
media-typestring

locking?

The locking configuration of the cache.

NameTypeDefaultDescription
isolation
NONENo locking isolation will be performed. This is only valid in local mode. In clustered mode, READ_COMMITTED will be used instead.
READ_UNCOMMITTEDUnsupported. Actually configures READ_COMMITTED
READ_COMMITTEDRead committed is an isolation level that guarantees that any data read is committed at the moment it is read. However, depending on the outcome of other transactions, successive reads may return different results
REPEATABLE_READRepeatable read is an isolation level that guarantees that any data read is committed at the moment it is read and that, within a transaction, successive reads will always return the same data.
SERIALIZABLEUnsupported. Actually configures REPEATABLE_READ
REPEATABLE_READSets the cache locking isolation level. Infinispan only supports READ_COMMITTED or REPEATABLE_READ isolation level.
stripingbooleanfalseIf true, a pool of shared locks is maintained for all entries that need to be locked. Otherwise, a lock is created per entry in the cache. Lock striping helps control memory footprint but may reduce concurrency in the system.
acquire-timeoutlong10000Maximum time to attempt a particular lock acquisition.
concurrency-levelint32Concurrency level for lock containers. Adjust this value according to the number of concurrent threads interacting with Infinispan.

transaction?

The cache transaction configuration.

NameTypeDefaultDescription
mode
NONECache will not enlist within transactions.
BATCHUses batching to group cache operations together.
NON_XACache will enlist within transactions as a javax.transaction.Synchronization
NON_DURABLE_XACache will enlist within transactions as a javax.transaction.xa.XAResource, without recovery.
FULL_XACache will enlist within transactions as a javax.transaction.xa.XAResource, with recovery.
NONESets the cache transaction mode to one of NONE, BATCH, NON_XA, NON_DURABLE_XA, FULL_XA.
stop-timeoutlong30000If there are any ongoing transactions when a cache is stopped, Infinispan waits for ongoing remote and local transactions to finish. The amount of time to wait for is defined by the cache stop timeout.
locking
OPTIMISTICEnables Optimistic locking.
PESSIMISTICEnables Pessimistic locking.
OPTIMISTICThe locking mode for this cache, one of OPTIMISTIC or PESSIMISTIC.
transaction-manager-lookupstringorg.infinispan.transaction.lookup.GenericTransactionManagerLookup Configure Transaction manager lookup directly using an instance of TransactionManagerLookup. Calling this method marks the cache as transactional.
complete-timeoutlong60000 The duration (millis) in which to keep information about the completion of a transaction. Defaults to 60000.
reaper-intervallong30000 The time interval (millis) at which the thread that cleans up transaction completion information kicks in. Defaults to 30000.
auto-commitbooleantrue If the cache is transactional and transactionAutoCommit is enabled then for single operation transactions the user doesn't need to manually start a transaction, but a transactions is injected by the system. Defaults to true.
recovery-cachestring__recoveryInfoCacheName__ Sets the name of the cache where recovery related information is held. The cache's default name is "__recoveryInfoCacheName__"
notificationsbooleantrue Enables or disables triggering transactional notifications on cache listeners. By default is enabled.

expiration?

The cache expiration configuration.

NameTypeDefaultDescription
max-idlelong-1 Specifies the maximum amount of time, in milliseconds, that cache entries can remain idle. If no operations are performed on entries within the maximum idle time, the entries expire across the cluster. A value of 0 or -1 disables expiration.
lifespanlong-1 Specifies the maximum amount of time, in milliseconds, that cache entries can exist. After reaching their lifespan, cache entries expire across the cluster. A value of 0 or -1 disables expiration.
intervallong60000 Specifies the interval, in milliseconds, between expiration runs. A value of 0 or -1 disables the expiration reaper.
touch
SYNCDelays read operations until the other owners confirm that the timestamp for the entry is updated.
ASYNC Sends touch commands to other owners without waiting for confirmation. This mode allows read operations to return the value of a key even if another node has started expiring it. When that occurs, the read operation does not extend the lifespan of the key.
SYNC Controls how timestamps get updated for entries in clustered caches with maximum idle expiration. The default value is SYNC. This attribute applies only to caches that use synchronous mode. Timestamps are updated asynchronously for caches that use asynchronous mode.

store-as-binary?

Configures the cache to store data in binary format.

Controls whether when stored in memory, keys and values are stored as references to their original objects, or in a serialized, binary format. There are benefits to both approaches, but often if used in a clustered mode, storing objects as binary means that the cost of serialization happens early on, and can be amortized. Further, deserialization costs are incurred lazily which improves throughput. It is possible to control this on a fine-grained basis: you can choose to just store keys or values as binary, or both. DEPRECATED: please use memory element instead
NameTypeDefaultDescription
keysboolean Specify whether keys are stored as binary or not. Enabled by default if the "enabled" attribute is set to true.
valuesboolean Specify whether values are stored as binary or not. Enabled by default if the "enabled" attribute is set to true.

persistence?

Configures the persistence layer for caches.

NameTypeDefaultDescription
passivationbooleanfalse Enables passivation so that data is written to cache stores only if it is evicted from memory. Subsequent requests for passivated entries restore them to memory and remove them from persistent storage. If you do not enable passivation, writes to entries in memory result in writes to cache stores.
connection-attemptsint10 Sets the maximum number of attempts to start each configured `CacheWriter` or `CacheLoader`. An exception is thrown and the cache does not start if the number of connection attempts exceeds the maximum.
connection-intervalint50 Specifies the time, in milliseconds, to wait between connection attempts on startup. A negative or zero value means no wait between connection attempts.
availability-intervalint1000 Specifies the time, in milliseconds, between availability checks to determine if the PersistenceManager is available. In other words, this interval sets how often stores and loaders are polled via their `org.infinispan.persistence.spi.CacheWriter#isAvailable` or `org.infinispan.persistence.spi.CacheLoader#isAvailable` implementation. If a single store or loader is not available, an exception is thrown during cache operations.

cluster-loader

Defines a cluster cache loader.

NameTypeDefaultDescription
remote-timeoutlong15000The timeout when performing remote calls.
NameTypeDefaultDescription
namestringUnused XML attribute.
sharedbooleanfalse Determines if a cache loader is shared between cache instances. Values are true / false (default). This property prevents duplicate writes of data to the cache loader by different cache instances. An example is where all cache instances in a cluster use the same JDBC settings for the same remote, shared database. If true, only the nodes where modifications originate write to the cache store. If false, each cache reacts to potential remote updates by storing the data to the cache store.
preloadbooleanfalse Pre-loads data into memory from the cache loader when the cache starts. Values are true / false (default). This property is useful when data in the cache loader is required immediately after startup to prevent delays with cache operations when the data is loaded lazily. This property can provide a "warm cache" on startup but it impacts performance because it affects start time. Pre-loading data is done locally, so any data loaded is stored locally in the node only. Pre-loaded data is not replicated or distributed. Likewise, data is pre-loaded only up to the maximum configured number of entries in eviction.

property*

A cache loader property with name and value.

store

Defines a custom cache store.

NameTypeDefaultDescription
classstringDefines the class name of a cache store that implements either `CacheLoader`, `CacheWriter`, or both.
NameTypeDefaultDescription
sharedbooleanfalseThis setting should be set to true when multiple cache instances share the same cache store (e.g., multiple nodes in a cluster using a JDBC-based CacheStore pointing to the same, shared database.) Setting this to true avoids multiple cache instances writing the same modification multiple times. If enabled, only the node where the modification originated will write to the cache store. If disabled, each individual cache reacts to a potential remote update by storing the data to the cache store.
transactionalbooleanfalseThis setting should be set to true when the underlying cache store supports transactions and it is desirable for the underlying store and the cache to remain synchronized. With this enabled any Exceptions thrown whilst writing to the underlying store will result in both the store's and cache's transactions rollingback.
preloadbooleanfalseIf true, when the cache starts, data stored in the cache store will be pre-loaded into memory. This is particularly useful when data in the cache store will be needed immediately after startup and you want to avoid cache operations being delayed as a result of loading this data lazily. Can be used to provide a 'warm-cache' on startup, however there is a performance penalty as startup time is affected by this process. Likewise in some cases you cannot pre-load data in caches stores, such as when using shared remote stores.
purgebooleanfalse Empties the specified cache loader at startup. Values are true / false (default). This property takes effect only if read-only is false.
read-onlybooleanfalse Prevents data from being persisted to cache stores. Values are true / false (default). If true, cache stores load entries only. Any modifications to data in the cache do not apply to cache stores.
write-onlybooleanfalse Prevents data from being loaded from cache stores. Values are true / false (default). If true, cache stores write entries only. Any retrievals of data in the cache do not read from the cache store.
max-batch-sizeint100 Sets the maximum size of a batch to insert or delete from the cache store. If the value is less than one, no upper limit applies to the number of operations in a batch.
segmentedbooleantrue Configures cache stores to store data in hash space segments, with the cache's "segments" attribute defining the number of segments.

write-behind?

Configures cache stores as write-behind instead of write-through.

NameTypeDefaultDescription
modification-queue-sizeint1024 Specifies the maximum number of entries in the asynchronous modification queue. When the queue is full, write-through mode is used until the queue can accept new entries.
thread-pool-sizeint1 Specifies the number of threads to apply modifications to the cache store.
fail-silentlybooleanfalse Controls how asynchronous write operations take place when cache stores become unavailable. If "true", asynchronous write operations that fail are re-attempted with the number of times specified in the "connection-attempts" parameter. If all attempts fail, errors are ignored and write operations are not executed on the cache store. If "false", asynchronous write operations that fail are re-attempted when the underlying store becomes available. If the modification queue becomes full before the underlying store becomes available, an error is thrown on all future write operations to the store until the modification queue is flushed. The modification queue is not persisted. If the underlying store does not become available before the asynchronous store is stopped, queued modifications are lost.

property*

Defines a cache store property with name and value.

file-store

Defines a filesystem-based cache store.

NameTypeDefaultDescription
max-entriesint Deprecated since 13.0 which ignores the property. Specifies the maximum number of entries that the file store can hold. To increase the speed of lookups, Single File cache stores index keys and their locations in the file. To avoid excessive memory usage, you can configure the maximum number of entries so that entries are removed permanently from both memory and the cache store when the maximum is exceeded. However, this can lead to data loss. You should only set a maximum number of entries if data can be recomputed or retrieved from an authoritative data store. By default, the value is `-1` which means that there is no maximum number of entries. Deprecated since 13.0, will be removed in 16.0.
pathstring Specifies a filesystem directory for data. The value can be a relative or absolute path. Relative paths are created relative to the configured global persistent location. Absolute paths must be subdirectories of the global persistent location, otherwise an exception is thrown.
open-files-limitint1000 Max number of data and index files opened for reading (current log file and compaction output are not included here - always uses one each). Index files will use 1/10th of list limit with a minimum of 1 and a maximum equal to the number of cache segments.
compaction-thresholddouble0.5 If amount of unused space in some data file gets above this threshold, the file is compacted - entries from that file are copied to a new file and the old file is deleted.

index?

Configure where and how should be the index stored.
NameTypeDefaultDescription
pathstring A location where the store keeps index - this does not have be persistent across restarts, and SSD storage is recommended (the index is accessed randomly).
segmentsint3 Deprecated since 15.0 which ignores the property. This value is ignored as we create an index file per cache segment instead.
max-queue-lengthint1000 Max number of entry writes that are waiting to be written to the index, per index segment.
max-node-sizeint4096 Max size of node (continuous block on filesystem used in index implementation), in bytes.
min-node-sizeint0 If the size of node (continuous block on filesystem used in index implementation) drops below this threshold, the node will try to balance its size with some neighbour node, possibly causing join of multiple nodes.

data?

Configure where and how should be the entries stored - this is the persistent location.
NameTypeDefaultDescription
pathstring A location on disk where the store writes entries. Files are written sequentially, reads are random.
max-file-sizeint16777216 Max size of single file with entries, in bytes.
sync-writesbooleanfalse If true, the write is confirmed only after the entry is fsynced on disk.
NameTypeDefaultDescription
sharedbooleanfalseThis setting should be set to true when multiple cache instances share the same cache store (e.g., multiple nodes in a cluster using a JDBC-based CacheStore pointing to the same, shared database.) Setting this to true avoids multiple cache instances writing the same modification multiple times. If enabled, only the node where the modification originated will write to the cache store. If disabled, each individual cache reacts to a potential remote update by storing the data to the cache store.
transactionalbooleanfalseThis setting should be set to true when the underlying cache store supports transactions and it is desirable for the underlying store and the cache to remain synchronized. With this enabled any Exceptions thrown whilst writing to the underlying store will result in both the store's and cache's transactions rollingback.
preloadbooleanfalseIf true, when the cache starts, data stored in the cache store will be pre-loaded into memory. This is particularly useful when data in the cache store will be needed immediately after startup and you want to avoid cache operations being delayed as a result of loading this data lazily. Can be used to provide a 'warm-cache' on startup, however there is a performance penalty as startup time is affected by this process. Likewise in some cases you cannot pre-load data in caches stores, such as when using shared remote stores.
purgebooleanfalse Empties the specified cache loader at startup. Values are true / false (default). This property takes effect only if read-only is false.
read-onlybooleanfalse Prevents data from being persisted to cache stores. Values are true / false (default). If true, cache stores load entries only. Any modifications to data in the cache do not apply to cache stores.
write-onlybooleanfalse Prevents data from being loaded from cache stores. Values are true / false (default). If true, cache stores write entries only. Any retrievals of data in the cache do not read from the cache store.
max-batch-sizeint100 Sets the maximum size of a batch to insert or delete from the cache store. If the value is less than one, no upper limit applies to the number of operations in a batch.
segmentedbooleantrue Configures cache stores to store data in hash space segments, with the cache's "segments" attribute defining the number of segments.

write-behind?

Configures cache stores as write-behind instead of write-through.

NameTypeDefaultDescription
modification-queue-sizeint1024 Specifies the maximum number of entries in the asynchronous modification queue. When the queue is full, write-through mode is used until the queue can accept new entries.
thread-pool-sizeint1 Specifies the number of threads to apply modifications to the cache store.
fail-silentlybooleanfalse Controls how asynchronous write operations take place when cache stores become unavailable. If "true", asynchronous write operations that fail are re-attempted with the number of times specified in the "connection-attempts" parameter. If all attempts fail, errors are ignored and write operations are not executed on the cache store. If "false", asynchronous write operations that fail are re-attempted when the underlying store becomes available. If the modification queue becomes full before the underlying store becomes available, an error is thrown on all future write operations to the store until the modification queue is flushed. The modification queue is not persisted. If the underlying store does not become available before the asynchronous store is stopped, queued modifications are lost.

property*

Defines a cache store property with name and value.

single-file-store

Deprecated since 13.0. Defines a filesystem-based cache store that stores its elements in a single file.

NameTypeDefaultDescription
max-entriesint Specifies the maximum number of entries that the file store can hold. To increase the speed of lookups, Single File cache stores index keys and their locations in the file. To avoid excessive memory usage, you can configure the maximum number of entries so that entries are removed permanently from both memory and the cache store when the maximum is exceeded. However, this can lead to data loss. You should only set a maximum number of entries if data can be recomputed or retrieved from an authoritative data store. By default, the value is `-1` which means that there is no maximum number of entries.
pathstring Specifies a filesystem directory for data. The value can be a relative or absolute path. Relative paths are created relative to the configured global persistent location. Absolute paths must be subdirectories of the global persistent location, otherwise an exception is thrown.
NameTypeDefaultDescription
sharedbooleanfalseThis setting should be set to true when multiple cache instances share the same cache store (e.g., multiple nodes in a cluster using a JDBC-based CacheStore pointing to the same, shared database.) Setting this to true avoids multiple cache instances writing the same modification multiple times. If enabled, only the node where the modification originated will write to the cache store. If disabled, each individual cache reacts to a potential remote update by storing the data to the cache store.
transactionalbooleanfalseThis setting should be set to true when the underlying cache store supports transactions and it is desirable for the underlying store and the cache to remain synchronized. With this enabled any Exceptions thrown whilst writing to the underlying store will result in both the store's and cache's transactions rollingback.
preloadbooleanfalseIf true, when the cache starts, data stored in the cache store will be pre-loaded into memory. This is particularly useful when data in the cache store will be needed immediately after startup and you want to avoid cache operations being delayed as a result of loading this data lazily. Can be used to provide a 'warm-cache' on startup, however there is a performance penalty as startup time is affected by this process. Likewise in some cases you cannot pre-load data in caches stores, such as when using shared remote stores.
purgebooleanfalse Empties the specified cache loader at startup. Values are true / false (default). This property takes effect only if read-only is false.
read-onlybooleanfalse Prevents data from being persisted to cache stores. Values are true / false (default). If true, cache stores load entries only. Any modifications to data in the cache do not apply to cache stores.
write-onlybooleanfalse Prevents data from being loaded from cache stores. Values are true / false (default). If true, cache stores write entries only. Any retrievals of data in the cache do not read from the cache store.
max-batch-sizeint100 Sets the maximum size of a batch to insert or delete from the cache store. If the value is less than one, no upper limit applies to the number of operations in a batch.
segmentedbooleantrue Configures cache stores to store data in hash space segments, with the cache's "segments" attribute defining the number of segments.

write-behind?

Configures cache stores as write-behind instead of write-through.

NameTypeDefaultDescription
modification-queue-sizeint1024 Specifies the maximum number of entries in the asynchronous modification queue. When the queue is full, write-through mode is used until the queue can accept new entries.
thread-pool-sizeint1 Specifies the number of threads to apply modifications to the cache store.
fail-silentlybooleanfalse Controls how asynchronous write operations take place when cache stores become unavailable. If "true", asynchronous write operations that fail are re-attempted with the number of times specified in the "connection-attempts" parameter. If all attempts fail, errors are ignored and write operations are not executed on the cache store. If "false", asynchronous write operations that fail are re-attempted when the underlying store becomes available. If the modification queue becomes full before the underlying store becomes available, an error is thrown on all future write operations to the store until the modification queue is flushed. The modification queue is not persisted. If the underlying store does not become available before the asynchronous store is stopped, queued modifications are lost.

property*

Defines a cache store property with name and value.

memory?

Controls how the entries are stored in memory

NameTypeDefaultDescription
max-sizestring Defines the size of the data container in bytes. The default unit is B (bytes). You can optionally set one of the following units: KB (kilobytes), MB (megabytes), GB (gigabytes), TB (terabytes), KiB (kibibytes), MiB (mebibytes), GiB (gibibytes) and TiB (tebibytes). Eviction occurs when the approximate memory usage of the data container exceeds the maximum size.
max-countlong-1 Defines the size of the data container by number of entries. Eviction occurs after the container size exceeds the maximum count.
when-full
NONE Do not evict entries. If you define a size for the data container, you should specify either the REMOVE or EXCEPTION exiction strategy.
MANUAL Manually evict entries. This strategy is the same as NONE but does not log errors if you enable passivation without eviction.
REMOVE Automatically evict older entries to make space for new entries. By default REMOVE is always used when you define a size for the data container unless you configure the EXCEPTION strategy.
EXCEPTION Do not evict entries. If the data container reaches the maximum size, exceptions occur for requests to create new entries. You can use this eviction strategy only with transactional caches that use two phase commit.
UNORDEREDDeprecated. Activates REMOVE policy.
FIFODeprecated. Activates REMOVE policy.
LRUDeprecated. Activates REMOVE policy.
LIRSDeprecated. Activates REMOVE policy.
Specifies a strategy for evicting cache entries. Eviction always takes place when you define either the max-size or the max-count (but not both) for the data container. If no strategy is defined, but max-count or max-size is configured, REMOVE is used.
storage
HEAP Stores cache entries in JVM heap memory.
OFF_HEAP Stores cache entries as bytes in native memory outside the Java heap.
OBJECT Deprecated, only added in 11.0 to simplify the transition from the <object/> element. Please use HEAP instead.
BINARY Deprecated, only added in 11.0 to simplify the transition from the <binary/> element. Please use HEAP and set the encoding media type instead.
HEAP Defines the type of memory that the data container uses as storage.

query?

Defines query options for cache

NameTypeDefaultDescription
default-max-resultsinteger100 Limits the number of results returned by a query. Applies to indexed, non-indexed, and hybrid queries. Setting the default-max-results significantly improves performance of queries that don't have an explicit limit set.
hit-count-accuracyinteger10000 Limit the required accuracy of the hit count for the indexed queries to an upper-bound. Setting the hit-count-accuracy optimize the performance of queries targeting large data sets. For optimal results, set this value slightly above the expected hit count. If you do not require accurate hit counts, set it to a low value.

indexing?

Defines indexing options for cache

NameTypeDefaultDescription
enabledbooleanfalse Enables and disables cache indexing. Including the indexing element in cache configuration automatically enables indexing without the need to set the value of this attribute to "true". Indexing is also automatically enabled when the "auto-config" attribute is set to a value of "true".
storage
filesystemLocal filesystem index storage. This is the default.
local-heapJVM heap index storage, not persisted between restarts. Only suitable for small datasets with low concurrency.
filesystemSpecify index storage options.
startup-mode
purge Clears the index when the cache starts.
reindex Rebuilds the index when the cache starts.
auto Automatically triggers an indexing operation when the cache starts. If data is volatile and the index is persistent then the cache is cleared when it starts. If data is persistent and the index is volatile then the cache is reindexed when it starts.
none Cache startup does not trigger an indexing operation. This is the default value.
none Triggers an indexing process when the cache starts.
pathstring Specifies a filesystem path for the index when storage is 'filesystem'. The value can be a relative or absolute path. Relative paths are created relative to the configured global persistent location, or to the current working directory when global state is disabled. By default, the cache name is used as a relative path for index path. When setting a custom value, ensure that there are no conflicts between caches using the same indexed entities.
auto-configbooleanfalseDeprecated since 11.0, with no replacement. Whether or not to apply automatic index configuration based on cache type

index-reader?

Controls index reading parameters.

NameTypeDefaultDescription
refresh-intervallong0 Interval, in milliseconds, to reopen the index reader. By default, the index reader is refreshed on-demand during searches, if new entries were indexed since the last refresh. Configuring with a value larger than zero will make some queries results stale, but query throughput will increase substantially, specially in write heavy scenarios.

index-writer?

Controls index writing parameters

NameTypeDefaultDescription
commit-intervalint1000 Amount of time, in milliseconds, that index changes that are buffered in memory are flushed to the index storage and a commit is performed. Because operation is costly, small values should be avoided. The default is 1000 ms (1 second).
ram-buffer-sizeint32 Maximum amount of memory that can be used for buffering added entries and deletions before they are flushed to the index storage. Large values result in faster indexing but use more memory. For faster indexing performance you should set this attribute instead of `max-buffered-entries`. When used in combination with the `max-buffered-entries` attribute, a flush occurs for whichever event happens first.
max-buffered-entriesint32 Maximum number of entries that can be buffered in-memory before they are flushed to the index storage. Large values result in faster indexing but use more memory. When used in combination with the `ram-buffer-size` attribute, a flush occurs for whichever event happens first.
thread-pool-sizeint1 Number of threads that execute write operations to the index.
queue-countint1 Number of internal queues to use for each indexed type. Each queue holds a batch of modifications that is applied to the index and queues are processed in parallel. Increasing the number of queues will lead to an increase of indexing throughput, but only if the bottleneck is CPU. For optimum results, do not set a value for `queue-count` that is larger than the value for `thread-pool-size`.
queue-sizeint1000 Maximum number of elements each queue can hold. Increasing the `queue-size` value increases the amount of memory that is used during indexing operations. Setting a value that is too small can block indexing operations.
low-level-tracebooleanfalse Enables low-level trace information for indexing operations. Enabling this attribute substantially degrades performance. You should use this low-level tracing only as a last resource for troubleshooting.

index-merge?

Defines properties to control the merge of index segments. An index segment is not related to an Infinispan segment, but represents a section of index in the storage.

NameTypeDefaultDescription
max-entriesint Maximum number of entries that an index segment can have before merging. Segments with more than this number of entries are not merged. Smaller values perform better on frequently changing indexes, larger values provide better search performance if the index does not change often.
factorint Number of segments that are merged at once. With smaller values, merging happens more often, which uses more resources, but the total number of segments will be lower on average, increasing search performance. Larger values (greater than 10) are best for heavy writing scenarios.
min-sizeint Minimum target size of segments, in MB, for background merges. Segments smaller than this size are merged more aggressively. Setting a value that is too large might result in expensive merge operations, even though they are less frequent.
max-sizeint Maximum size of segments, in MB, for background merges. Segments larger than this size are never merged in the background. Settings this to a lower value helps reduce memory requirements and avoids some merging operations at the cost of optimal search speed. This attribute is ignored when forcefully merging an index and `max-forced-size` applies instead.
max-forced-sizeint maximum size of segments, in MB, for forced merges and overrides the `max-size` attribute. Set this to the same value as `max-size` or lower. However setting the value too low degrades search performance because documents are deleted.
calibrate-by-deletesboolean Whether the number of deleted entries in an index should be taken into account when counting the entries in the segment. Setting `false` will lead to more frequent merges caused by `max-entries`, but will more aggressively merge segments with many deleted documents, improving search performance.

key-transformers?

Defines the Transformers used to stringify keys for indexing with Lucene

key-transformer*

Defines the Transformer to use for the specified key class
NameTypeDefaultDescription
keystring
transformerstring

indexed-entities?

Defines the set of indexed type names (fully qualified). If values of types that are not included in this set are put in the cache they will not be indexed.

indexed-entity+

Indexed entity type name. Must be either a fully qualified Java class name or a protobuf type name.

property*

Property to pass on to the indexing system

custom-interceptors?

Deprecated since 10.0, will be removed without a replacement. Configures custom interceptors to be added to the cache.

interceptor*

Deprecated since 10.0, will be removed without a replacement.

NameTypeDefaultDescription
afterstringDictates that the custom interceptor appears immediately after the specified interceptor. If the specified interceptor is not found in the interceptor chain, a ConfigurationException will be thrown when the cache starts.
beforestringDictates that the custom interceptor appears immediately before the specified interceptor. If the specified interceptor is not found in the interceptor chain, a ConfigurationException will be thrown when the cache starts.
classstringA fully qualified class name of the new custom interceptor to add to the configuration.
indexintSpecifies a position in the interceptor chain to place the new interceptor. The index starts at 0 and goes up to the number of interceptors in a given configuration. A ConfigurationException is thrown if the index is less than 0 or greater than the maximum number of interceptors in the chain.
positionstringSpecifies a position where to place the new interceptor. Allowed values are FIRST, LAST, and OTHER_THAN_FIRST_OR_LAST

property?

security?

Configures cache-level security.

authorization?

Configures authorization for this cache.

NameTypeDefaultDescription
enabledbooleanfalse Enables authorization checks for this cache. Defaults to true if the authorization element is present.
roles Sets the valid roles required to access this cache.

invalidation-cache-configuration

Defines an INVALIDATION_* mode cache configuration.

NameTypeDefaultDescription
mode
ASYNC Enables asynchronous mode.
SYNC Enables synchronous mode.
SYNCSets the clustered cache mode, ASYNC for asynchronous operation, or SYNC for synchronous operation.
remote-timeoutlong15000In SYNC mode, the timeout (in ms) used to wait for an acknowledgment when making a remote call, after which the call is aborted and an exception is thrown.

partition-handling?

Configures the way this cache reacts to node crashes and split brains.

NameTypeDefaultDescription
enabledboolean Deprecated, use type instead. Enable/disable the partition handling functionality. Defaults to false.
when-split
DENY_READ_WRITES Allow read and write operations only if all replicas of an entry are in the partition. If a partition does not include all replicas of an entry, do not allow cache operations for that entry.
ALLOW_READS Allow read operations for entries and deny write operations unless the partition includes all replicas of an entry.
ALLOW_READ_WRITES Allow read and write operations on caches while a cluster is split into network partitions. Caches remain available and conflicts are resolved during merge.
ALLOW_READ_WRITESThe type of actions that are possible when a split brain scenario is encountered.
merge-policyNONEThe entry merge policy which should be applied on partition merges.
NameTypeDefaultDescription
nameIDUniquely identifies this cache within its cache container.
configurationIDREFThe name of the cache configuration which this configuration inherits from.
statisticsbooleanfalseDetermines whether or not the cache should collect statistics. Keep disabled for optimal performance.
statistics-availablebooleantrueIf set to false, statistics gathering cannot be enabled during runtime. Keep disabled for optimal performance.
unreliable-return-valuesbooleanfalse Specifies whether Infinispan is allowed to disregard the Map contract when providing return values for org.infinispan.Cache#put(Object, Object) and org.infinispan.Cache#remove(Object) methods.

backups?

Defines backup locations for cache data and modifies state transfer properties.

NameTypeDefaultDescription
merge-policyDEFAULT Specifies the fully qualified name of a class that implements the XSiteEntryMergePolicy interface or any of the alias. Use if for ASYNC strategy backup.
max-cleanup-delaypositiveInteger30000 Specifies the maximum delay, in milliseconds, between which tombstone cleanup tasks run. This attribute applies to the asynchronous backup strategy only.
tombstone-map-sizepositiveInteger512000 Specifies the target number of tombstones to store. If the current size of the tombstone map is greater than the target size, then cleanup tasks run more frequently. If the current size of the tombstone map is less than the target size, then cleanup tasks run less frequently. This attribute applies to the asynchronous backup strategy only.

backup*

Configures a remote site as a backup location for cache data.

NameTypeDefaultDescription
sitestring Names the remote site to which the cache backs up data.
strategy
ASYNC Enables asynchronous mode.
SYNC Enables synchronous mode.
ASYNC Sets the strategy for backing up to a remote site.
failure-policy
IGNORE Ignore failed backup operations and write to the local cache.
WARN Log exceptions when backup operations fail and write to the local cache.
FAIL Throw exceptions when backup operations fail and attempt to stop writes to the local cache.
CUSTOM Use a custom failure policy. Requires the "failure-policy-class" attribute.
WARN Controls how local writes to caches are handled if synchronous backup operations fail.
timeoutlong15000 Specifies timeout, in milliseconds, for synchronous and asynchronous backup operations.
two-phase-commitbooleanfalse Enables two-phase commits for optimistic transactional caches with the synchronous backup strategy only.
failure-policy-classstring Specifies the fully qualified name of a class that implements the CustomFailurePolicy interface. Use if failure-policy="CUSTOM".

take-offline?

Specifies the number of failures that can occur before backup locations go offline.

NameTypeDefaultDescription
after-failuresint0 Sets the number of consecutive failures that can occur for backup operations before sites go offline. Specify a negative or zero value to ignore this attribute and use minimum wait time only ("min-wait").
min-waitlong0 Sets the minimum time to wait, in milliseconds, before sites go offline when backup operations fail. If subsequent operations are successful, the minimum wait time is reset. If you set "after-failures", sites go offline when the wait time is reached and the number of failures occur.

state-transfer?

Modifies state transfer operations.

NameTypeDefaultDescription
chunk-sizeint512 Specifies how many cache entries are batched in each transfer request.
timeoutlong1200000 The time (in milliseconds) to wait for the backup site acknowledge the state chunk received and applied. Default value is 20 min.
max-retriesint30 Sets the maximum number of retry attempts for push state failures. Specify a value of 0 (zero) to disable retry attempts. The default value is 30.
wait-timelong2000 Sets the amount of time, in milliseconds, to wait between retry attempts for push state failures. You must specify a value of 1 or more. The default value is 2000.
mode
MANUAL Users must bring backup locations online and initiate state transfer between remote sites.
AUTO Backup locations that use the asynchronous backup strategy can automatically come back online. State transfer operations begin when the remote site connections are stable.
MANUAL Controls whether cross-site state transfer happens manually on user action, which is the default, or automatically when backup locations come online.

backup-for?

Defines the local cache as a backup for a remote cache with a different name.

NameTypeDefaultDescription
remote-cachestring Specifies the name of the remote cache that uses the local cache as a backup.
remote-sitestring Specifies the name of the remote site that backs up data to the local cache.

encoding?

The cache encoding configuration.

Defines content type and encoding for keys and values of the cache.
NameTypeDefaultDescription
media-typestring The media type for both keys and values. When present, takes precedence over the individual configurations for keys and values.

key?

Describes the content-type and encoding.
NameTypeDefaultDescription
media-typestring

value?

Describes the content-type and encoding.
NameTypeDefaultDescription
media-typestring

locking?

The locking configuration of the cache.

NameTypeDefaultDescription
isolation
NONENo locking isolation will be performed. This is only valid in local mode. In clustered mode, READ_COMMITTED will be used instead.
READ_UNCOMMITTEDUnsupported. Actually configures READ_COMMITTED
READ_COMMITTEDRead committed is an isolation level that guarantees that any data read is committed at the moment it is read. However, depending on the outcome of other transactions, successive reads may return different results
REPEATABLE_READRepeatable read is an isolation level that guarantees that any data read is committed at the moment it is read and that, within a transaction, successive reads will always return the same data.
SERIALIZABLEUnsupported. Actually configures REPEATABLE_READ
REPEATABLE_READSets the cache locking isolation level. Infinispan only supports READ_COMMITTED or REPEATABLE_READ isolation level.
stripingbooleanfalseIf true, a pool of shared locks is maintained for all entries that need to be locked. Otherwise, a lock is created per entry in the cache. Lock striping helps control memory footprint but may reduce concurrency in the system.
acquire-timeoutlong10000Maximum time to attempt a particular lock acquisition.
concurrency-levelint32Concurrency level for lock containers. Adjust this value according to the number of concurrent threads interacting with Infinispan.

transaction?

The cache transaction configuration.

NameTypeDefaultDescription
mode
NONECache will not enlist within transactions.
BATCHUses batching to group cache operations together.
NON_XACache will enlist within transactions as a javax.transaction.Synchronization
NON_DURABLE_XACache will enlist within transactions as a javax.transaction.xa.XAResource, without recovery.
FULL_XACache will enlist within transactions as a javax.transaction.xa.XAResource, with recovery.
NONESets the cache transaction mode to one of NONE, BATCH, NON_XA, NON_DURABLE_XA, FULL_XA.
stop-timeoutlong30000If there are any ongoing transactions when a cache is stopped, Infinispan waits for ongoing remote and local transactions to finish. The amount of time to wait for is defined by the cache stop timeout.
locking
OPTIMISTICEnables Optimistic locking.
PESSIMISTICEnables Pessimistic locking.
OPTIMISTICThe locking mode for this cache, one of OPTIMISTIC or PESSIMISTIC.
transaction-manager-lookupstringorg.infinispan.transaction.lookup.GenericTransactionManagerLookup Configure Transaction manager lookup directly using an instance of TransactionManagerLookup. Calling this method marks the cache as transactional.
complete-timeoutlong60000 The duration (millis) in which to keep information about the completion of a transaction. Defaults to 60000.
reaper-intervallong30000 The time interval (millis) at which the thread that cleans up transaction completion information kicks in. Defaults to 30000.
auto-commitbooleantrue If the cache is transactional and transactionAutoCommit is enabled then for single operation transactions the user doesn't need to manually start a transaction, but a transactions is injected by the system. Defaults to true.
recovery-cachestring__recoveryInfoCacheName__ Sets the name of the cache where recovery related information is held. The cache's default name is "__recoveryInfoCacheName__"
notificationsbooleantrue Enables or disables triggering transactional notifications on cache listeners. By default is enabled.

expiration?

The cache expiration configuration.

NameTypeDefaultDescription
max-idlelong-1 Specifies the maximum amount of time, in milliseconds, that cache entries can remain idle. If no operations are performed on entries within the maximum idle time, the entries expire across the cluster. A value of 0 or -1 disables expiration.
lifespanlong-1 Specifies the maximum amount of time, in milliseconds, that cache entries can exist. After reaching their lifespan, cache entries expire across the cluster. A value of 0 or -1 disables expiration.
intervallong60000 Specifies the interval, in milliseconds, between expiration runs. A value of 0 or -1 disables the expiration reaper.
touch
SYNCDelays read operations until the other owners confirm that the timestamp for the entry is updated.
ASYNC Sends touch commands to other owners without waiting for confirmation. This mode allows read operations to return the value of a key even if another node has started expiring it. When that occurs, the read operation does not extend the lifespan of the key.
SYNC Controls how timestamps get updated for entries in clustered caches with maximum idle expiration. The default value is SYNC. This attribute applies only to caches that use synchronous mode. Timestamps are updated asynchronously for caches that use asynchronous mode.

store-as-binary?

Configures the cache to store data in binary format.

Controls whether when stored in memory, keys and values are stored as references to their original objects, or in a serialized, binary format. There are benefits to both approaches, but often if used in a clustered mode, storing objects as binary means that the cost of serialization happens early on, and can be amortized. Further, deserialization costs are incurred lazily which improves throughput. It is possible to control this on a fine-grained basis: you can choose to just store keys or values as binary, or both. DEPRECATED: please use memory element instead
NameTypeDefaultDescription
keysboolean Specify whether keys are stored as binary or not. Enabled by default if the "enabled" attribute is set to true.
valuesboolean Specify whether values are stored as binary or not. Enabled by default if the "enabled" attribute is set to true.

persistence?

Configures the persistence layer for caches.

NameTypeDefaultDescription
passivationbooleanfalse Enables passivation so that data is written to cache stores only if it is evicted from memory. Subsequent requests for passivated entries restore them to memory and remove them from persistent storage. If you do not enable passivation, writes to entries in memory result in writes to cache stores.
connection-attemptsint10 Sets the maximum number of attempts to start each configured `CacheWriter` or `CacheLoader`. An exception is thrown and the cache does not start if the number of connection attempts exceeds the maximum.
connection-intervalint50 Specifies the time, in milliseconds, to wait between connection attempts on startup. A negative or zero value means no wait between connection attempts.
availability-intervalint1000 Specifies the time, in milliseconds, between availability checks to determine if the PersistenceManager is available. In other words, this interval sets how often stores and loaders are polled via their `org.infinispan.persistence.spi.CacheWriter#isAvailable` or `org.infinispan.persistence.spi.CacheLoader#isAvailable` implementation. If a single store or loader is not available, an exception is thrown during cache operations.

cluster-loader

Defines a cluster cache loader.

NameTypeDefaultDescription
remote-timeoutlong15000The timeout when performing remote calls.
NameTypeDefaultDescription
namestringUnused XML attribute.
sharedbooleanfalse Determines if a cache loader is shared between cache instances. Values are true / false (default). This property prevents duplicate writes of data to the cache loader by different cache instances. An example is where all cache instances in a cluster use the same JDBC settings for the same remote, shared database. If true, only the nodes where modifications originate write to the cache store. If false, each cache reacts to potential remote updates by storing the data to the cache store.
preloadbooleanfalse Pre-loads data into memory from the cache loader when the cache starts. Values are true / false (default). This property is useful when data in the cache loader is required immediately after startup to prevent delays with cache operations when the data is loaded lazily. This property can provide a "warm cache" on startup but it impacts performance because it affects start time. Pre-loading data is done locally, so any data loaded is stored locally in the node only. Pre-loaded data is not replicated or distributed. Likewise, data is pre-loaded only up to the maximum configured number of entries in eviction.

property*

A cache loader property with name and value.

store

Defines a custom cache store.

NameTypeDefaultDescription
classstringDefines the class name of a cache store that implements either `CacheLoader`, `CacheWriter`, or both.
NameTypeDefaultDescription
sharedbooleanfalseThis setting should be set to true when multiple cache instances share the same cache store (e.g., multiple nodes in a cluster using a JDBC-based CacheStore pointing to the same, shared database.) Setting this to true avoids multiple cache instances writing the same modification multiple times. If enabled, only the node where the modification originated will write to the cache store. If disabled, each individual cache reacts to a potential remote update by storing the data to the cache store.
transactionalbooleanfalseThis setting should be set to true when the underlying cache store supports transactions and it is desirable for the underlying store and the cache to remain synchronized. With this enabled any Exceptions thrown whilst writing to the underlying store will result in both the store's and cache's transactions rollingback.
preloadbooleanfalseIf true, when the cache starts, data stored in the cache store will be pre-loaded into memory. This is particularly useful when data in the cache store will be needed immediately after startup and you want to avoid cache operations being delayed as a result of loading this data lazily. Can be used to provide a 'warm-cache' on startup, however there is a performance penalty as startup time is affected by this process. Likewise in some cases you cannot pre-load data in caches stores, such as when using shared remote stores.
purgebooleanfalse Empties the specified cache loader at startup. Values are true / false (default). This property takes effect only if read-only is false.
read-onlybooleanfalse Prevents data from being persisted to cache stores. Values are true / false (default). If true, cache stores load entries only. Any modifications to data in the cache do not apply to cache stores.
write-onlybooleanfalse Prevents data from being loaded from cache stores. Values are true / false (default). If true, cache stores write entries only. Any retrievals of data in the cache do not read from the cache store.
max-batch-sizeint100 Sets the maximum size of a batch to insert or delete from the cache store. If the value is less than one, no upper limit applies to the number of operations in a batch.
segmentedbooleantrue Configures cache stores to store data in hash space segments, with the cache's "segments" attribute defining the number of segments.

write-behind?

Configures cache stores as write-behind instead of write-through.

NameTypeDefaultDescription
modification-queue-sizeint1024 Specifies the maximum number of entries in the asynchronous modification queue. When the queue is full, write-through mode is used until the queue can accept new entries.
thread-pool-sizeint1 Specifies the number of threads to apply modifications to the cache store.
fail-silentlybooleanfalse Controls how asynchronous write operations take place when cache stores become unavailable. If "true", asynchronous write operations that fail are re-attempted with the number of times specified in the "connection-attempts" parameter. If all attempts fail, errors are ignored and write operations are not executed on the cache store. If "false", asynchronous write operations that fail are re-attempted when the underlying store becomes available. If the modification queue becomes full before the underlying store becomes available, an error is thrown on all future write operations to the store until the modification queue is flushed. The modification queue is not persisted. If the underlying store does not become available before the asynchronous store is stopped, queued modifications are lost.

property*

Defines a cache store property with name and value.

file-store

Defines a filesystem-based cache store.

NameTypeDefaultDescription
max-entriesint Deprecated since 13.0 which ignores the property. Specifies the maximum number of entries that the file store can hold. To increase the speed of lookups, Single File cache stores index keys and their locations in the file. To avoid excessive memory usage, you can configure the maximum number of entries so that entries are removed permanently from both memory and the cache store when the maximum is exceeded. However, this can lead to data loss. You should only set a maximum number of entries if data can be recomputed or retrieved from an authoritative data store. By default, the value is `-1` which means that there is no maximum number of entries. Deprecated since 13.0, will be removed in 16.0.
pathstring Specifies a filesystem directory for data. The value can be a relative or absolute path. Relative paths are created relative to the configured global persistent location. Absolute paths must be subdirectories of the global persistent location, otherwise an exception is thrown.
open-files-limitint1000 Max number of data and index files opened for reading (current log file and compaction output are not included here - always uses one each). Index files will use 1/10th of list limit with a minimum of 1 and a maximum equal to the number of cache segments.
compaction-thresholddouble0.5 If amount of unused space in some data file gets above this threshold, the file is compacted - entries from that file are copied to a new file and the old file is deleted.

index?

Configure where and how should be the index stored.
NameTypeDefaultDescription
pathstring A location where the store keeps index - this does not have be persistent across restarts, and SSD storage is recommended (the index is accessed randomly).
segmentsint3 Deprecated since 15.0 which ignores the property. This value is ignored as we create an index file per cache segment instead.
max-queue-lengthint1000 Max number of entry writes that are waiting to be written to the index, per index segment.
max-node-sizeint4096 Max size of node (continuous block on filesystem used in index implementation), in bytes.
min-node-sizeint0 If the size of node (continuous block on filesystem used in index implementation) drops below this threshold, the node will try to balance its size with some neighbour node, possibly causing join of multiple nodes.

data?

Configure where and how should be the entries stored - this is the persistent location.
NameTypeDefaultDescription
pathstring A location on disk where the store writes entries. Files are written sequentially, reads are random.
max-file-sizeint16777216 Max size of single file with entries, in bytes.
sync-writesbooleanfalse If true, the write is confirmed only after the entry is fsynced on disk.
NameTypeDefaultDescription
sharedbooleanfalseThis setting should be set to true when multiple cache instances share the same cache store (e.g., multiple nodes in a cluster using a JDBC-based CacheStore pointing to the same, shared database.) Setting this to true avoids multiple cache instances writing the same modification multiple times. If enabled, only the node where the modification originated will write to the cache store. If disabled, each individual cache reacts to a potential remote update by storing the data to the cache store.
transactionalbooleanfalseThis setting should be set to true when the underlying cache store supports transactions and it is desirable for the underlying store and the cache to remain synchronized. With this enabled any Exceptions thrown whilst writing to the underlying store will result in both the store's and cache's transactions rollingback.
preloadbooleanfalseIf true, when the cache starts, data stored in the cache store will be pre-loaded into memory. This is particularly useful when data in the cache store will be needed immediately after startup and you want to avoid cache operations being delayed as a result of loading this data lazily. Can be used to provide a 'warm-cache' on startup, however there is a performance penalty as startup time is affected by this process. Likewise in some cases you cannot pre-load data in caches stores, such as when using shared remote stores.
purgebooleanfalse Empties the specified cache loader at startup. Values are true / false (default). This property takes effect only if read-only is false.
read-onlybooleanfalse Prevents data from being persisted to cache stores. Values are true / false (default). If true, cache stores load entries only. Any modifications to data in the cache do not apply to cache stores.
write-onlybooleanfalse Prevents data from being loaded from cache stores. Values are true / false (default). If true, cache stores write entries only. Any retrievals of data in the cache do not read from the cache store.
max-batch-sizeint100 Sets the maximum size of a batch to insert or delete from the cache store. If the value is less than one, no upper limit applies to the number of operations in a batch.
segmentedbooleantrue Configures cache stores to store data in hash space segments, with the cache's "segments" attribute defining the number of segments.

write-behind?

Configures cache stores as write-behind instead of write-through.

NameTypeDefaultDescription
modification-queue-sizeint1024 Specifies the maximum number of entries in the asynchronous modification queue. When the queue is full, write-through mode is used until the queue can accept new entries.
thread-pool-sizeint1 Specifies the number of threads to apply modifications to the cache store.
fail-silentlybooleanfalse Controls how asynchronous write operations take place when cache stores become unavailable. If "true", asynchronous write operations that fail are re-attempted with the number of times specified in the "connection-attempts" parameter. If all attempts fail, errors are ignored and write operations are not executed on the cache store. If "false", asynchronous write operations that fail are re-attempted when the underlying store becomes available. If the modification queue becomes full before the underlying store becomes available, an error is thrown on all future write operations to the store until the modification queue is flushed. The modification queue is not persisted. If the underlying store does not become available before the asynchronous store is stopped, queued modifications are lost.

property*

Defines a cache store property with name and value.

single-file-store

Deprecated since 13.0. Defines a filesystem-based cache store that stores its elements in a single file.

NameTypeDefaultDescription
max-entriesint Specifies the maximum number of entries that the file store can hold. To increase the speed of lookups, Single File cache stores index keys and their locations in the file. To avoid excessive memory usage, you can configure the maximum number of entries so that entries are removed permanently from both memory and the cache store when the maximum is exceeded. However, this can lead to data loss. You should only set a maximum number of entries if data can be recomputed or retrieved from an authoritative data store. By default, the value is `-1` which means that there is no maximum number of entries.
pathstring Specifies a filesystem directory for data. The value can be a relative or absolute path. Relative paths are created relative to the configured global persistent location. Absolute paths must be subdirectories of the global persistent location, otherwise an exception is thrown.
NameTypeDefaultDescription
sharedbooleanfalseThis setting should be set to true when multiple cache instances share the same cache store (e.g., multiple nodes in a cluster using a JDBC-based CacheStore pointing to the same, shared database.) Setting this to true avoids multiple cache instances writing the same modification multiple times. If enabled, only the node where the modification originated will write to the cache store. If disabled, each individual cache reacts to a potential remote update by storing the data to the cache store.
transactionalbooleanfalseThis setting should be set to true when the underlying cache store supports transactions and it is desirable for the underlying store and the cache to remain synchronized. With this enabled any Exceptions thrown whilst writing to the underlying store will result in both the store's and cache's transactions rollingback.
preloadbooleanfalseIf true, when the cache starts, data stored in the cache store will be pre-loaded into memory. This is particularly useful when data in the cache store will be needed immediately after startup and you want to avoid cache operations being delayed as a result of loading this data lazily. Can be used to provide a 'warm-cache' on startup, however there is a performance penalty as startup time is affected by this process. Likewise in some cases you cannot pre-load data in caches stores, such as when using shared remote stores.
purgebooleanfalse Empties the specified cache loader at startup. Values are true / false (default). This property takes effect only if read-only is false.
read-onlybooleanfalse Prevents data from being persisted to cache stores. Values are true / false (default). If true, cache stores load entries only. Any modifications to data in the cache do not apply to cache stores.
write-onlybooleanfalse Prevents data from being loaded from cache stores. Values are true / false (default). If true, cache stores write entries only. Any retrievals of data in the cache do not read from the cache store.
max-batch-sizeint100 Sets the maximum size of a batch to insert or delete from the cache store. If the value is less than one, no upper limit applies to the number of operations in a batch.
segmentedbooleantrue Configures cache stores to store data in hash space segments, with the cache's "segments" attribute defining the number of segments.

write-behind?

Configures cache stores as write-behind instead of write-through.

NameTypeDefaultDescription
modification-queue-sizeint1024 Specifies the maximum number of entries in the asynchronous modification queue. When the queue is full, write-through mode is used until the queue can accept new entries.
thread-pool-sizeint1 Specifies the number of threads to apply modifications to the cache store.
fail-silentlybooleanfalse Controls how asynchronous write operations take place when cache stores become unavailable. If "true", asynchronous write operations that fail are re-attempted with the number of times specified in the "connection-attempts" parameter. If all attempts fail, errors are ignored and write operations are not executed on the cache store. If "false", asynchronous write operations that fail are re-attempted when the underlying store becomes available. If the modification queue becomes full before the underlying store becomes available, an error is thrown on all future write operations to the store until the modification queue is flushed. The modification queue is not persisted. If the underlying store does not become available before the asynchronous store is stopped, queued modifications are lost.

property*

Defines a cache store property with name and value.

memory?

Controls how the entries are stored in memory

NameTypeDefaultDescription
max-sizestring Defines the size of the data container in bytes. The default unit is B (bytes). You can optionally set one of the following units: KB (kilobytes), MB (megabytes), GB (gigabytes), TB (terabytes), KiB (kibibytes), MiB (mebibytes), GiB (gibibytes) and TiB (tebibytes). Eviction occurs when the approximate memory usage of the data container exceeds the maximum size.
max-countlong-1 Defines the size of the data container by number of entries. Eviction occurs after the container size exceeds the maximum count.
when-full
NONE Do not evict entries. If you define a size for the data container, you should specify either the REMOVE or EXCEPTION exiction strategy.
MANUAL Manually evict entries. This strategy is the same as NONE but does not log errors if you enable passivation without eviction.
REMOVE Automatically evict older entries to make space for new entries. By default REMOVE is always used when you define a size for the data container unless you configure the EXCEPTION strategy.
EXCEPTION Do not evict entries. If the data container reaches the maximum size, exceptions occur for requests to create new entries. You can use this eviction strategy only with transactional caches that use two phase commit.
UNORDEREDDeprecated. Activates REMOVE policy.
FIFODeprecated. Activates REMOVE policy.
LRUDeprecated. Activates REMOVE policy.
LIRSDeprecated. Activates REMOVE policy.
Specifies a strategy for evicting cache entries. Eviction always takes place when you define either the max-size or the max-count (but not both) for the data container. If no strategy is defined, but max-count or max-size is configured, REMOVE is used.
storage
HEAP Stores cache entries in JVM heap memory.
OFF_HEAP Stores cache entries as bytes in native memory outside the Java heap.
OBJECT Deprecated, only added in 11.0 to simplify the transition from the <object/> element. Please use HEAP instead.
BINARY Deprecated, only added in 11.0 to simplify the transition from the <binary/> element. Please use HEAP and set the encoding media type instead.
HEAP Defines the type of memory that the data container uses as storage.

query?

Defines query options for cache

NameTypeDefaultDescription
default-max-resultsinteger100 Limits the number of results returned by a query. Applies to indexed, non-indexed, and hybrid queries. Setting the default-max-results significantly improves performance of queries that don't have an explicit limit set.
hit-count-accuracyinteger10000 Limit the required accuracy of the hit count for the indexed queries to an upper-bound. Setting the hit-count-accuracy optimize the performance of queries targeting large data sets. For optimal results, set this value slightly above the expected hit count. If you do not require accurate hit counts, set it to a low value.

indexing?

Defines indexing options for cache

NameTypeDefaultDescription
enabledbooleanfalse Enables and disables cache indexing. Including the indexing element in cache configuration automatically enables indexing without the need to set the value of this attribute to "true". Indexing is also automatically enabled when the "auto-config" attribute is set to a value of "true".
storage
filesystemLocal filesystem index storage. This is the default.
local-heapJVM heap index storage, not persisted between restarts. Only suitable for small datasets with low concurrency.
filesystemSpecify index storage options.
startup-mode
purge Clears the index when the cache starts.
reindex Rebuilds the index when the cache starts.
auto Automatically triggers an indexing operation when the cache starts. If data is volatile and the index is persistent then the cache is cleared when it starts. If data is persistent and the index is volatile then the cache is reindexed when it starts.
none Cache startup does not trigger an indexing operation. This is the default value.
none Triggers an indexing process when the cache starts.
pathstring Specifies a filesystem path for the index when storage is 'filesystem'. The value can be a relative or absolute path. Relative paths are created relative to the configured global persistent location, or to the current working directory when global state is disabled. By default, the cache name is used as a relative path for index path. When setting a custom value, ensure that there are no conflicts between caches using the same indexed entities.
auto-configbooleanfalseDeprecated since 11.0, with no replacement. Whether or not to apply automatic index configuration based on cache type

index-reader?

Controls index reading parameters.

NameTypeDefaultDescription
refresh-intervallong0 Interval, in milliseconds, to reopen the index reader. By default, the index reader is refreshed on-demand during searches, if new entries were indexed since the last refresh. Configuring with a value larger than zero will make some queries results stale, but query throughput will increase substantially, specially in write heavy scenarios.

index-writer?

Controls index writing parameters

NameTypeDefaultDescription
commit-intervalint1000 Amount of time, in milliseconds, that index changes that are buffered in memory are flushed to the index storage and a commit is performed. Because operation is costly, small values should be avoided. The default is 1000 ms (1 second).
ram-buffer-sizeint32 Maximum amount of memory that can be used for buffering added entries and deletions before they are flushed to the index storage. Large values result in faster indexing but use more memory. For faster indexing performance you should set this attribute instead of `max-buffered-entries`. When used in combination with the `max-buffered-entries` attribute, a flush occurs for whichever event happens first.
max-buffered-entriesint32 Maximum number of entries that can be buffered in-memory before they are flushed to the index storage. Large values result in faster indexing but use more memory. When used in combination with the `ram-buffer-size` attribute, a flush occurs for whichever event happens first.
thread-pool-sizeint1 Number of threads that execute write operations to the index.
queue-countint1 Number of internal queues to use for each indexed type. Each queue holds a batch of modifications that is applied to the index and queues are processed in parallel. Increasing the number of queues will lead to an increase of indexing throughput, but only if the bottleneck is CPU. For optimum results, do not set a value for `queue-count` that is larger than the value for `thread-pool-size`.
queue-sizeint1000 Maximum number of elements each queue can hold. Increasing the `queue-size` value increases the amount of memory that is used during indexing operations. Setting a value that is too small can block indexing operations.
low-level-tracebooleanfalse Enables low-level trace information for indexing operations. Enabling this attribute substantially degrades performance. You should use this low-level tracing only as a last resource for troubleshooting.

index-merge?

Defines properties to control the merge of index segments. An index segment is not related to an Infinispan segment, but represents a section of index in the storage.

NameTypeDefaultDescription
max-entriesint Maximum number of entries that an index segment can have before merging. Segments with more than this number of entries are not merged. Smaller values perform better on frequently changing indexes, larger values provide better search performance if the index does not change often.
factorint Number of segments that are merged at once. With smaller values, merging happens more often, which uses more resources, but the total number of segments will be lower on average, increasing search performance. Larger values (greater than 10) are best for heavy writing scenarios.
min-sizeint Minimum target size of segments, in MB, for background merges. Segments smaller than this size are merged more aggressively. Setting a value that is too large might result in expensive merge operations, even though they are less frequent.
max-sizeint Maximum size of segments, in MB, for background merges. Segments larger than this size are never merged in the background. Settings this to a lower value helps reduce memory requirements and avoids some merging operations at the cost of optimal search speed. This attribute is ignored when forcefully merging an index and `max-forced-size` applies instead.
max-forced-sizeint maximum size of segments, in MB, for forced merges and overrides the `max-size` attribute. Set this to the same value as `max-size` or lower. However setting the value too low degrades search performance because documents are deleted.
calibrate-by-deletesboolean Whether the number of deleted entries in an index should be taken into account when counting the entries in the segment. Setting `false` will lead to more frequent merges caused by `max-entries`, but will more aggressively merge segments with many deleted documents, improving search performance.

key-transformers?

Defines the Transformers used to stringify keys for indexing with Lucene

key-transformer*

Defines the Transformer to use for the specified key class
NameTypeDefaultDescription
keystring
transformerstring

indexed-entities?

Defines the set of indexed type names (fully qualified). If values of types that are not included in this set are put in the cache they will not be indexed.

indexed-entity+

Indexed entity type name. Must be either a fully qualified Java class name or a protobuf type name.

property*

Property to pass on to the indexing system

custom-interceptors?

Deprecated since 10.0, will be removed without a replacement. Configures custom interceptors to be added to the cache.

interceptor*

Deprecated since 10.0, will be removed without a replacement.

NameTypeDefaultDescription
afterstringDictates that the custom interceptor appears immediately after the specified interceptor. If the specified interceptor is not found in the interceptor chain, a ConfigurationException will be thrown when the cache starts.
beforestringDictates that the custom interceptor appears immediately before the specified interceptor. If the specified interceptor is not found in the interceptor chain, a ConfigurationException will be thrown when the cache starts.
classstringA fully qualified class name of the new custom interceptor to add to the configuration.
indexintSpecifies a position in the interceptor chain to place the new interceptor. The index starts at 0 and goes up to the number of interceptors in a given configuration. A ConfigurationException is thrown if the index is less than 0 or greater than the maximum number of interceptors in the chain.
positionstringSpecifies a position where to place the new interceptor. Allowed values are FIRST, LAST, and OTHER_THAN_FIRST_OR_LAST

property?

security?

Configures cache-level security.

authorization?

Configures authorization for this cache.

NameTypeDefaultDescription
enabledbooleanfalse Enables authorization checks for this cache. Defaults to true if the authorization element is present.
roles Sets the valid roles required to access this cache.

distributed-cache

Defines a DIST_* mode cache.

NameTypeDefaultDescription
ownersint2Number of cluster-wide replicas for each cache entry.
segmentsint256Sets the number of hash space segments per cluster. The default value is 256. The value should be at least 20 * the cluster size.
capacity-factordouble1.0 Controls the proportion of entries that reside on the local node in comparison to other nodes in the cluster. You must specify a positive number as the value. The value can also be a fraction such as 1.5.
l1-lifespanlongMaximum lifespan in milliseconds of an entry placed in the L1 cache. By default L1 is disabled unless a positive value is configured for this attribute. If the attribute is not present, L1 is disabled.
l1-cleanup-intervallong60000 Controls how often a cleanup task to prune L1 tracking data is run. Defaults to 10 minutes.
consistent-hash-factorystring The factory to use for generating the consistent hash. Must implement `org.infinispan.distribution.ch.ConsistentHashFactory`. E.g. `org.infinispan.distribution.ch.impl.SyncConsistentHashFactory` can be used to guarantee that multiple distributed caches use exactly the same consistent hash, which for performance reasons is not guaranteed by the default consistent hash factory instance used.
key-partitionerstring The name of the key partitioner class. Must implement `org.infinispan.distribution.ch.KeyPartitioner`. A custom key partitioner can be used as an alternative to grouping, to guarantee that some keys are located in the same segment (and thus their primary owner is the same node). Since 8.2.

state-transfer?

The state transfer configuration for distribution and replicated caches.

NameTypeDefaultDescription
enabledbooleantrueIf enabled, this will cause the cache to ask neighboring caches for state when it starts up, so the cache starts 'warm', although it will impact startup time.
timeoutlong240000The maximum amount of time (ms) to wait for state from neighboring caches, before throwing an exception and aborting startup. Must be greater than or equal to 'remote-timeout' in the clustering configuration.
chunk-sizeinteger512The number of cache entries to batch in each transfer.
await-initial-transferbooleantrueIf enabled, this will cause the cache to wait for initial state transfer to complete before responding to requests.

groups?

Configures grouping of data.

NameTypeDefaultDescription
enabledboolean Enables or disables grouping.

grouper*

NameTypeDefaultDescription
classstring The class to use to group keys. Must implement org.infinispan.distribution.group.Grouper.
NameTypeDefaultDescription
mode
ASYNC Enables asynchronous mode.
SYNC Enables synchronous mode.
SYNCSets the clustered cache mode, ASYNC for asynchronous operation, or SYNC for synchronous operation.
remote-timeoutlong15000In SYNC mode, the timeout (in ms) used to wait for an acknowledgment when making a remote call, after which the call is aborted and an exception is thrown.

partition-handling?

Configures the way this cache reacts to node crashes and split brains.

NameTypeDefaultDescription
enabledboolean Deprecated, use type instead. Enable/disable the partition handling functionality. Defaults to false.
when-split
DENY_READ_WRITES Allow read and write operations only if all replicas of an entry are in the partition. If a partition does not include all replicas of an entry, do not allow cache operations for that entry.
ALLOW_READS Allow read operations for entries and deny write operations unless the partition includes all replicas of an entry.
ALLOW_READ_WRITES Allow read and write operations on caches while a cluster is split into network partitions. Caches remain available and conflicts are resolved during merge.
ALLOW_READ_WRITESThe type of actions that are possible when a split brain scenario is encountered.
merge-policyNONEThe entry merge policy which should be applied on partition merges.
NameTypeDefaultDescription
nameIDUniquely identifies this cache within its cache container.
configurationIDREFThe name of the cache configuration which this configuration inherits from.
statisticsbooleanfalseDetermines whether or not the cache should collect statistics. Keep disabled for optimal performance.
statistics-availablebooleantrueIf set to false, statistics gathering cannot be enabled during runtime. Keep disabled for optimal performance.
unreliable-return-valuesbooleanfalse Specifies whether Infinispan is allowed to disregard the Map contract when providing return values for org.infinispan.Cache#put(Object, Object) and org.infinispan.Cache#remove(Object) methods.

backups?

Defines backup locations for cache data and modifies state transfer properties.

NameTypeDefaultDescription
merge-policyDEFAULT Specifies the fully qualified name of a class that implements the XSiteEntryMergePolicy interface or any of the alias. Use if for ASYNC strategy backup.
max-cleanup-delaypositiveInteger30000 Specifies the maximum delay, in milliseconds, between which tombstone cleanup tasks run. This attribute applies to the asynchronous backup strategy only.
tombstone-map-sizepositiveInteger512000 Specifies the target number of tombstones to store. If the current size of the tombstone map is greater than the target size, then cleanup tasks run more frequently. If the current size of the tombstone map is less than the target size, then cleanup tasks run less frequently. This attribute applies to the asynchronous backup strategy only.

backup*

Configures a remote site as a backup location for cache data.

NameTypeDefaultDescription
sitestring Names the remote site to which the cache backs up data.
strategy
ASYNC Enables asynchronous mode.
SYNC Enables synchronous mode.
ASYNC Sets the strategy for backing up to a remote site.
failure-policy
IGNORE Ignore failed backup operations and write to the local cache.
WARN Log exceptions when backup operations fail and write to the local cache.
FAIL Throw exceptions when backup operations fail and attempt to stop writes to the local cache.
CUSTOM Use a custom failure policy. Requires the "failure-policy-class" attribute.
WARN Controls how local writes to caches are handled if synchronous backup operations fail.
timeoutlong15000 Specifies timeout, in milliseconds, for synchronous and asynchronous backup operations.
two-phase-commitbooleanfalse Enables two-phase commits for optimistic transactional caches with the synchronous backup strategy only.
failure-policy-classstring Specifies the fully qualified name of a class that implements the CustomFailurePolicy interface. Use if failure-policy="CUSTOM".

take-offline?

Specifies the number of failures that can occur before backup locations go offline.

NameTypeDefaultDescription
after-failuresint0 Sets the number of consecutive failures that can occur for backup operations before sites go offline. Specify a negative or zero value to ignore this attribute and use minimum wait time only ("min-wait").
min-waitlong0 Sets the minimum time to wait, in milliseconds, before sites go offline when backup operations fail. If subsequent operations are successful, the minimum wait time is reset. If you set "after-failures", sites go offline when the wait time is reached and the number of failures occur.

state-transfer?

Modifies state transfer operations.

NameTypeDefaultDescription
chunk-sizeint512 Specifies how many cache entries are batched in each transfer request.
timeoutlong1200000 The time (in milliseconds) to wait for the backup site acknowledge the state chunk received and applied. Default value is 20 min.
max-retriesint30 Sets the maximum number of retry attempts for push state failures. Specify a value of 0 (zero) to disable retry attempts. The default value is 30.
wait-timelong2000 Sets the amount of time, in milliseconds, to wait between retry attempts for push state failures. You must specify a value of 1 or more. The default value is 2000.
mode
MANUAL Users must bring backup locations online and initiate state transfer between remote sites.
AUTO Backup locations that use the asynchronous backup strategy can automatically come back online. State transfer operations begin when the remote site connections are stable.
MANUAL Controls whether cross-site state transfer happens manually on user action, which is the default, or automatically when backup locations come online.

backup-for?

Defines the local cache as a backup for a remote cache with a different name.

NameTypeDefaultDescription
remote-cachestring Specifies the name of the remote cache that uses the local cache as a backup.
remote-sitestring Specifies the name of the remote site that backs up data to the local cache.

encoding?

The cache encoding configuration.

Defines content type and encoding for keys and values of the cache.
NameTypeDefaultDescription
media-typestring The media type for both keys and values. When present, takes precedence over the individual configurations for keys and values.

key?

Describes the content-type and encoding.
NameTypeDefaultDescription
media-typestring

value?

Describes the content-type and encoding.
NameTypeDefaultDescription
media-typestring

locking?

The locking configuration of the cache.

NameTypeDefaultDescription
isolation
NONENo locking isolation will be performed. This is only valid in local mode. In clustered mode, READ_COMMITTED will be used instead.
READ_UNCOMMITTEDUnsupported. Actually configures READ_COMMITTED
READ_COMMITTEDRead committed is an isolation level that guarantees that any data read is committed at the moment it is read. However, depending on the outcome of other transactions, successive reads may return different results
REPEATABLE_READRepeatable read is an isolation level that guarantees that any data read is committed at the moment it is read and that, within a transaction, successive reads will always return the same data.
SERIALIZABLEUnsupported. Actually configures REPEATABLE_READ
REPEATABLE_READSets the cache locking isolation level. Infinispan only supports READ_COMMITTED or REPEATABLE_READ isolation level.
stripingbooleanfalseIf true, a pool of shared locks is maintained for all entries that need to be locked. Otherwise, a lock is created per entry in the cache. Lock striping helps control memory footprint but may reduce concurrency in the system.
acquire-timeoutlong10000Maximum time to attempt a particular lock acquisition.
concurrency-levelint32Concurrency level for lock containers. Adjust this value according to the number of concurrent threads interacting with Infinispan.

transaction?

The cache transaction configuration.

NameTypeDefaultDescription
mode
NONECache will not enlist within transactions.
BATCHUses batching to group cache operations together.
NON_XACache will enlist within transactions as a javax.transaction.Synchronization
NON_DURABLE_XACache will enlist within transactions as a javax.transaction.xa.XAResource, without recovery.
FULL_XACache will enlist within transactions as a javax.transaction.xa.XAResource, with recovery.
NONESets the cache transaction mode to one of NONE, BATCH, NON_XA, NON_DURABLE_XA, FULL_XA.
stop-timeoutlong30000If there are any ongoing transactions when a cache is stopped, Infinispan waits for ongoing remote and local transactions to finish. The amount of time to wait for is defined by the cache stop timeout.
locking
OPTIMISTICEnables Optimistic locking.
PESSIMISTICEnables Pessimistic locking.
OPTIMISTICThe locking mode for this cache, one of OPTIMISTIC or PESSIMISTIC.
transaction-manager-lookupstringorg.infinispan.transaction.lookup.GenericTransactionManagerLookup Configure Transaction manager lookup directly using an instance of TransactionManagerLookup. Calling this method marks the cache as transactional.
complete-timeoutlong60000 The duration (millis) in which to keep information about the completion of a transaction. Defaults to 60000.
reaper-intervallong30000 The time interval (millis) at which the thread that cleans up transaction completion information kicks in. Defaults to 30000.
auto-commitbooleantrue If the cache is transactional and transactionAutoCommit is enabled then for single operation transactions the user doesn't need to manually start a transaction, but a transactions is injected by the system. Defaults to true.
recovery-cachestring__recoveryInfoCacheName__ Sets the name of the cache where recovery related information is held. The cache's default name is "__recoveryInfoCacheName__"
notificationsbooleantrue Enables or disables triggering transactional notifications on cache listeners. By default is enabled.

expiration?

The cache expiration configuration.

NameTypeDefaultDescription
max-idlelong-1 Specifies the maximum amount of time, in milliseconds, that cache entries can remain idle. If no operations are performed on entries within the maximum idle time, the entries expire across the cluster. A value of 0 or -1 disables expiration.
lifespanlong-1 Specifies the maximum amount of time, in milliseconds, that cache entries can exist. After reaching their lifespan, cache entries expire across the cluster. A value of 0 or -1 disables expiration.
intervallong60000 Specifies the interval, in milliseconds, between expiration runs. A value of 0 or -1 disables the expiration reaper.
touch
SYNCDelays read operations until the other owners confirm that the timestamp for the entry is updated.
ASYNC Sends touch commands to other owners without waiting for confirmation. This mode allows read operations to return the value of a key even if another node has started expiring it. When that occurs, the read operation does not extend the lifespan of the key.
SYNC Controls how timestamps get updated for entries in clustered caches with maximum idle expiration. The default value is SYNC. This attribute applies only to caches that use synchronous mode. Timestamps are updated asynchronously for caches that use asynchronous mode.

store-as-binary?

Configures the cache to store data in binary format.

Controls whether when stored in memory, keys and values are stored as references to their original objects, or in a serialized, binary format. There are benefits to both approaches, but often if used in a clustered mode, storing objects as binary means that the cost of serialization happens early on, and can be amortized. Further, deserialization costs are incurred lazily which improves throughput. It is possible to control this on a fine-grained basis: you can choose to just store keys or values as binary, or both. DEPRECATED: please use memory element instead
NameTypeDefaultDescription
keysboolean Specify whether keys are stored as binary or not. Enabled by default if the "enabled" attribute is set to true.
valuesboolean Specify whether values are stored as binary or not. Enabled by default if the "enabled" attribute is set to true.

persistence?

Configures the persistence layer for caches.

NameTypeDefaultDescription
passivationbooleanfalse Enables passivation so that data is written to cache stores only if it is evicted from memory. Subsequent requests for passivated entries restore them to memory and remove them from persistent storage. If you do not enable passivation, writes to entries in memory result in writes to cache stores.
connection-attemptsint10 Sets the maximum number of attempts to start each configured `CacheWriter` or `CacheLoader`. An exception is thrown and the cache does not start if the number of connection attempts exceeds the maximum.
connection-intervalint50 Specifies the time, in milliseconds, to wait between connection attempts on startup. A negative or zero value means no wait between connection attempts.
availability-intervalint1000 Specifies the time, in milliseconds, between availability checks to determine if the PersistenceManager is available. In other words, this interval sets how often stores and loaders are polled via their `org.infinispan.persistence.spi.CacheWriter#isAvailable` or `org.infinispan.persistence.spi.CacheLoader#isAvailable` implementation. If a single store or loader is not available, an exception is thrown during cache operations.

cluster-loader

Defines a cluster cache loader.

NameTypeDefaultDescription
remote-timeoutlong15000The timeout when performing remote calls.
NameTypeDefaultDescription
namestringUnused XML attribute.
sharedbooleanfalse Determines if a cache loader is shared between cache instances. Values are true / false (default). This property prevents duplicate writes of data to the cache loader by different cache instances. An example is where all cache instances in a cluster use the same JDBC settings for the same remote, shared database. If true, only the nodes where modifications originate write to the cache store. If false, each cache reacts to potential remote updates by storing the data to the cache store.
preloadbooleanfalse Pre-loads data into memory from the cache loader when the cache starts. Values are true / false (default). This property is useful when data in the cache loader is required immediately after startup to prevent delays with cache operations when the data is loaded lazily. This property can provide a "warm cache" on startup but it impacts performance because it affects start time. Pre-loading data is done locally, so any data loaded is stored locally in the node only. Pre-loaded data is not replicated or distributed. Likewise, data is pre-loaded only up to the maximum configured number of entries in eviction.

property*

A cache loader property with name and value.

store

Defines a custom cache store.

NameTypeDefaultDescription
classstringDefines the class name of a cache store that implements either `CacheLoader`, `CacheWriter`, or both.
NameTypeDefaultDescription
sharedbooleanfalseThis setting should be set to true when multiple cache instances share the same cache store (e.g., multiple nodes in a cluster using a JDBC-based CacheStore pointing to the same, shared database.) Setting this to true avoids multiple cache instances writing the same modification multiple times. If enabled, only the node where the modification originated will write to the cache store. If disabled, each individual cache reacts to a potential remote update by storing the data to the cache store.
transactionalbooleanfalseThis setting should be set to true when the underlying cache store supports transactions and it is desirable for the underlying store and the cache to remain synchronized. With this enabled any Exceptions thrown whilst writing to the underlying store will result in both the store's and cache's transactions rollingback.
preloadbooleanfalseIf true, when the cache starts, data stored in the cache store will be pre-loaded into memory. This is particularly useful when data in the cache store will be needed immediately after startup and you want to avoid cache operations being delayed as a result of loading this data lazily. Can be used to provide a 'warm-cache' on startup, however there is a performance penalty as startup time is affected by this process. Likewise in some cases you cannot pre-load data in caches stores, such as when using shared remote stores.
purgebooleanfalse Empties the specified cache loader at startup. Values are true / false (default). This property takes effect only if read-only is false.
read-onlybooleanfalse Prevents data from being persisted to cache stores. Values are true / false (default). If true, cache stores load entries only. Any modifications to data in the cache do not apply to cache stores.
write-onlybooleanfalse Prevents data from being loaded from cache stores. Values are true / false (default). If true, cache stores write entries only. Any retrievals of data in the cache do not read from the cache store.
max-batch-sizeint100 Sets the maximum size of a batch to insert or delete from the cache store. If the value is less than one, no upper limit applies to the number of operations in a batch.
segmentedbooleantrue Configures cache stores to store data in hash space segments, with the cache's "segments" attribute defining the number of segments.

write-behind?

Configures cache stores as write-behind instead of write-through.

NameTypeDefaultDescription
modification-queue-sizeint1024 Specifies the maximum number of entries in the asynchronous modification queue. When the queue is full, write-through mode is used until the queue can accept new entries.
thread-pool-sizeint1 Specifies the number of threads to apply modifications to the cache store.
fail-silentlybooleanfalse Controls how asynchronous write operations take place when cache stores become unavailable. If "true", asynchronous write operations that fail are re-attempted with the number of times specified in the "connection-attempts" parameter. If all attempts fail, errors are ignored and write operations are not executed on the cache store. If "false", asynchronous write operations that fail are re-attempted when the underlying store becomes available. If the modification queue becomes full before the underlying store becomes available, an error is thrown on all future write operations to the store until the modification queue is flushed. The modification queue is not persisted. If the underlying store does not become available before the asynchronous store is stopped, queued modifications are lost.

property*

Defines a cache store property with name and value.

file-store

Defines a filesystem-based cache store.

NameTypeDefaultDescription
max-entriesint Deprecated since 13.0 which ignores the property. Specifies the maximum number of entries that the file store can hold. To increase the speed of lookups, Single File cache stores index keys and their locations in the file. To avoid excessive memory usage, you can configure the maximum number of entries so that entries are removed permanently from both memory and the cache store when the maximum is exceeded. However, this can lead to data loss. You should only set a maximum number of entries if data can be recomputed or retrieved from an authoritative data store. By default, the value is `-1` which means that there is no maximum number of entries. Deprecated since 13.0, will be removed in 16.0.
pathstring Specifies a filesystem directory for data. The value can be a relative or absolute path. Relative paths are created relative to the configured global persistent location. Absolute paths must be subdirectories of the global persistent location, otherwise an exception is thrown.
open-files-limitint1000 Max number of data and index files opened for reading (current log file and compaction output are not included here - always uses one each). Index files will use 1/10th of list limit with a minimum of 1 and a maximum equal to the number of cache segments.
compaction-thresholddouble0.5 If amount of unused space in some data file gets above this threshold, the file is compacted - entries from that file are copied to a new file and the old file is deleted.

index?

Configure where and how should be the index stored.
NameTypeDefaultDescription
pathstring A location where the store keeps index - this does not have be persistent across restarts, and SSD storage is recommended (the index is accessed randomly).
segmentsint3 Deprecated since 15.0 which ignores the property. This value is ignored as we create an index file per cache segment instead.
max-queue-lengthint1000 Max number of entry writes that are waiting to be written to the index, per index segment.
max-node-sizeint4096 Max size of node (continuous block on filesystem used in index implementation), in bytes.
min-node-sizeint0 If the size of node (continuous block on filesystem used in index implementation) drops below this threshold, the node will try to balance its size with some neighbour node, possibly causing join of multiple nodes.

data?

Configure where and how should be the entries stored - this is the persistent location.
NameTypeDefaultDescription
pathstring A location on disk where the store writes entries. Files are written sequentially, reads are random.
max-file-sizeint16777216 Max size of single file with entries, in bytes.
sync-writesbooleanfalse If true, the write is confirmed only after the entry is fsynced on disk.
NameTypeDefaultDescription
sharedbooleanfalseThis setting should be set to true when multiple cache instances share the same cache store (e.g., multiple nodes in a cluster using a JDBC-based CacheStore pointing to the same, shared database.) Setting this to true avoids multiple cache instances writing the same modification multiple times. If enabled, only the node where the modification originated will write to the cache store. If disabled, each individual cache reacts to a potential remote update by storing the data to the cache store.
transactionalbooleanfalseThis setting should be set to true when the underlying cache store supports transactions and it is desirable for the underlying store and the cache to remain synchronized. With this enabled any Exceptions thrown whilst writing to the underlying store will result in both the store's and cache's transactions rollingback.
preloadbooleanfalseIf true, when the cache starts, data stored in the cache store will be pre-loaded into memory. This is particularly useful when data in the cache store will be needed immediately after startup and you want to avoid cache operations being delayed as a result of loading this data lazily. Can be used to provide a 'warm-cache' on startup, however there is a performance penalty as startup time is affected by this process. Likewise in some cases you cannot pre-load data in caches stores, such as when using shared remote stores.
purgebooleanfalse Empties the specified cache loader at startup. Values are true / false (default). This property takes effect only if read-only is false.
read-onlybooleanfalse Prevents data from being persisted to cache stores. Values are true / false (default). If true, cache stores load entries only. Any modifications to data in the cache do not apply to cache stores.
write-onlybooleanfalse Prevents data from being loaded from cache stores. Values are true / false (default). If true, cache stores write entries only. Any retrievals of data in the cache do not read from the cache store.
max-batch-sizeint100 Sets the maximum size of a batch to insert or delete from the cache store. If the value is less than one, no upper limit applies to the number of operations in a batch.
segmentedbooleantrue Configures cache stores to store data in hash space segments, with the cache's "segments" attribute defining the number of segments.

write-behind?

Configures cache stores as write-behind instead of write-through.

NameTypeDefaultDescription
modification-queue-sizeint1024 Specifies the maximum number of entries in the asynchronous modification queue. When the queue is full, write-through mode is used until the queue can accept new entries.
thread-pool-sizeint1 Specifies the number of threads to apply modifications to the cache store.
fail-silentlybooleanfalse Controls how asynchronous write operations take place when cache stores become unavailable. If "true", asynchronous write operations that fail are re-attempted with the number of times specified in the "connection-attempts" parameter. If all attempts fail, errors are ignored and write operations are not executed on the cache store. If "false", asynchronous write operations that fail are re-attempted when the underlying store becomes available. If the modification queue becomes full before the underlying store becomes available, an error is thrown on all future write operations to the store until the modification queue is flushed. The modification queue is not persisted. If the underlying store does not become available before the asynchronous store is stopped, queued modifications are lost.

property*

Defines a cache store property with name and value.

single-file-store

Deprecated since 13.0. Defines a filesystem-based cache store that stores its elements in a single file.

NameTypeDefaultDescription
max-entriesint Specifies the maximum number of entries that the file store can hold. To increase the speed of lookups, Single File cache stores index keys and their locations in the file. To avoid excessive memory usage, you can configure the maximum number of entries so that entries are removed permanently from both memory and the cache store when the maximum is exceeded. However, this can lead to data loss. You should only set a maximum number of entries if data can be recomputed or retrieved from an authoritative data store. By default, the value is `-1` which means that there is no maximum number of entries.
pathstring Specifies a filesystem directory for data. The value can be a relative or absolute path. Relative paths are created relative to the configured global persistent location. Absolute paths must be subdirectories of the global persistent location, otherwise an exception is thrown.
NameTypeDefaultDescription
sharedbooleanfalseThis setting should be set to true when multiple cache instances share the same cache store (e.g., multiple nodes in a cluster using a JDBC-based CacheStore pointing to the same, shared database.) Setting this to true avoids multiple cache instances writing the same modification multiple times. If enabled, only the node where the modification originated will write to the cache store. If disabled, each individual cache reacts to a potential remote update by storing the data to the cache store.
transactionalbooleanfalseThis setting should be set to true when the underlying cache store supports transactions and it is desirable for the underlying store and the cache to remain synchronized. With this enabled any Exceptions thrown whilst writing to the underlying store will result in both the store's and cache's transactions rollingback.
preloadbooleanfalseIf true, when the cache starts, data stored in the cache store will be pre-loaded into memory. This is particularly useful when data in the cache store will be needed immediately after startup and you want to avoid cache operations being delayed as a result of loading this data lazily. Can be used to provide a 'warm-cache' on startup, however there is a performance penalty as startup time is affected by this process. Likewise in some cases you cannot pre-load data in caches stores, such as when using shared remote stores.
purgebooleanfalse Empties the specified cache loader at startup. Values are true / false (default). This property takes effect only if read-only is false.
read-onlybooleanfalse Prevents data from being persisted to cache stores. Values are true / false (default). If true, cache stores load entries only. Any modifications to data in the cache do not apply to cache stores.
write-onlybooleanfalse Prevents data from being loaded from cache stores. Values are true / false (default). If true, cache stores write entries only. Any retrievals of data in the cache do not read from the cache store.
max-batch-sizeint100 Sets the maximum size of a batch to insert or delete from the cache store. If the value is less than one, no upper limit applies to the number of operations in a batch.
segmentedbooleantrue Configures cache stores to store data in hash space segments, with the cache's "segments" attribute defining the number of segments.

write-behind?

Configures cache stores as write-behind instead of write-through.

NameTypeDefaultDescription
modification-queue-sizeint1024 Specifies the maximum number of entries in the asynchronous modification queue. When the queue is full, write-through mode is used until the queue can accept new entries.
thread-pool-sizeint1 Specifies the number of threads to apply modifications to the cache store.
fail-silentlybooleanfalse Controls how asynchronous write operations take place when cache stores become unavailable. If "true", asynchronous write operations that fail are re-attempted with the number of times specified in the "connection-attempts" parameter. If all attempts fail, errors are ignored and write operations are not executed on the cache store. If "false", asynchronous write operations that fail are re-attempted when the underlying store becomes available. If the modification queue becomes full before the underlying store becomes available, an error is thrown on all future write operations to the store until the modification queue is flushed. The modification queue is not persisted. If the underlying store does not become available before the asynchronous store is stopped, queued modifications are lost.

property*

Defines a cache store property with name and value.

memory?

Controls how the entries are stored in memory

NameTypeDefaultDescription
max-sizestring Defines the size of the data container in bytes. The default unit is B (bytes). You can optionally set one of the following units: KB (kilobytes), MB (megabytes), GB (gigabytes), TB (terabytes), KiB (kibibytes), MiB (mebibytes), GiB (gibibytes) and TiB (tebibytes). Eviction occurs when the approximate memory usage of the data container exceeds the maximum size.
max-countlong-1 Defines the size of the data container by number of entries. Eviction occurs after the container size exceeds the maximum count.
when-full
NONE Do not evict entries. If you define a size for the data container, you should specify either the REMOVE or EXCEPTION exiction strategy.
MANUAL Manually evict entries. This strategy is the same as NONE but does not log errors if you enable passivation without eviction.
REMOVE Automatically evict older entries to make space for new entries. By default REMOVE is always used when you define a size for the data container unless you configure the EXCEPTION strategy.
EXCEPTION Do not evict entries. If the data container reaches the maximum size, exceptions occur for requests to create new entries. You can use this eviction strategy only with transactional caches that use two phase commit.
UNORDEREDDeprecated. Activates REMOVE policy.
FIFODeprecated. Activates REMOVE policy.
LRUDeprecated. Activates REMOVE policy.
LIRSDeprecated. Activates REMOVE policy.
Specifies a strategy for evicting cache entries. Eviction always takes place when you define either the max-size or the max-count (but not both) for the data container. If no strategy is defined, but max-count or max-size is configured, REMOVE is used.
storage
HEAP Stores cache entries in JVM heap memory.
OFF_HEAP Stores cache entries as bytes in native memory outside the Java heap.
OBJECT Deprecated, only added in 11.0 to simplify the transition from the <object/> element. Please use HEAP instead.
BINARY Deprecated, only added in 11.0 to simplify the transition from the <binary/> element. Please use HEAP and set the encoding media type instead.
HEAP Defines the type of memory that the data container uses as storage.

query?

Defines query options for cache

NameTypeDefaultDescription
default-max-resultsinteger100 Limits the number of results returned by a query. Applies to indexed, non-indexed, and hybrid queries. Setting the default-max-results significantly improves performance of queries that don't have an explicit limit set.
hit-count-accuracyinteger10000 Limit the required accuracy of the hit count for the indexed queries to an upper-bound. Setting the hit-count-accuracy optimize the performance of queries targeting large data sets. For optimal results, set this value slightly above the expected hit count. If you do not require accurate hit counts, set it to a low value.

indexing?

Defines indexing options for cache

NameTypeDefaultDescription
enabledbooleanfalse Enables and disables cache indexing. Including the indexing element in cache configuration automatically enables indexing without the need to set the value of this attribute to "true". Indexing is also automatically enabled when the "auto-config" attribute is set to a value of "true".
storage
filesystemLocal filesystem index storage. This is the default.
local-heapJVM heap index storage, not persisted between restarts. Only suitable for small datasets with low concurrency.
filesystemSpecify index storage options.
startup-mode
purge Clears the index when the cache starts.
reindex Rebuilds the index when the cache starts.
auto Automatically triggers an indexing operation when the cache starts. If data is volatile and the index is persistent then the cache is cleared when it starts. If data is persistent and the index is volatile then the cache is reindexed when it starts.
none Cache startup does not trigger an indexing operation. This is the default value.
none Triggers an indexing process when the cache starts.
pathstring Specifies a filesystem path for the index when storage is 'filesystem'. The value can be a relative or absolute path. Relative paths are created relative to the configured global persistent location, or to the current working directory when global state is disabled. By default, the cache name is used as a relative path for index path. When setting a custom value, ensure that there are no conflicts between caches using the same indexed entities.
auto-configbooleanfalseDeprecated since 11.0, with no replacement. Whether or not to apply automatic index configuration based on cache type

index-reader?

Controls index reading parameters.

NameTypeDefaultDescription
refresh-intervallong0 Interval, in milliseconds, to reopen the index reader. By default, the index reader is refreshed on-demand during searches, if new entries were indexed since the last refresh. Configuring with a value larger than zero will make some queries results stale, but query throughput will increase substantially, specially in write heavy scenarios.

index-writer?

Controls index writing parameters

NameTypeDefaultDescription
commit-intervalint1000 Amount of time, in milliseconds, that index changes that are buffered in memory are flushed to the index storage and a commit is performed. Because operation is costly, small values should be avoided. The default is 1000 ms (1 second).
ram-buffer-sizeint32 Maximum amount of memory that can be used for buffering added entries and deletions before they are flushed to the index storage. Large values result in faster indexing but use more memory. For faster indexing performance you should set this attribute instead of `max-buffered-entries`. When used in combination with the `max-buffered-entries` attribute, a flush occurs for whichever event happens first.
max-buffered-entriesint32 Maximum number of entries that can be buffered in-memory before they are flushed to the index storage. Large values result in faster indexing but use more memory. When used in combination with the `ram-buffer-size` attribute, a flush occurs for whichever event happens first.
thread-pool-sizeint1 Number of threads that execute write operations to the index.
queue-countint1 Number of internal queues to use for each indexed type. Each queue holds a batch of modifications that is applied to the index and queues are processed in parallel. Increasing the number of queues will lead to an increase of indexing throughput, but only if the bottleneck is CPU. For optimum results, do not set a value for `queue-count` that is larger than the value for `thread-pool-size`.
queue-sizeint1000 Maximum number of elements each queue can hold. Increasing the `queue-size` value increases the amount of memory that is used during indexing operations. Setting a value that is too small can block indexing operations.
low-level-tracebooleanfalse Enables low-level trace information for indexing operations. Enabling this attribute substantially degrades performance. You should use this low-level tracing only as a last resource for troubleshooting.

index-merge?

Defines properties to control the merge of index segments. An index segment is not related to an Infinispan segment, but represents a section of index in the storage.

NameTypeDefaultDescription
max-entriesint Maximum number of entries that an index segment can have before merging. Segments with more than this number of entries are not merged. Smaller values perform better on frequently changing indexes, larger values provide better search performance if the index does not change often.
factorint Number of segments that are merged at once. With smaller values, merging happens more often, which uses more resources, but the total number of segments will be lower on average, increasing search performance. Larger values (greater than 10) are best for heavy writing scenarios.
min-sizeint Minimum target size of segments, in MB, for background merges. Segments smaller than this size are merged more aggressively. Setting a value that is too large might result in expensive merge operations, even though they are less frequent.
max-sizeint Maximum size of segments, in MB, for background merges. Segments larger than this size are never merged in the background. Settings this to a lower value helps reduce memory requirements and avoids some merging operations at the cost of optimal search speed. This attribute is ignored when forcefully merging an index and `max-forced-size` applies instead.
max-forced-sizeint maximum size of segments, in MB, for forced merges and overrides the `max-size` attribute. Set this to the same value as `max-size` or lower. However setting the value too low degrades search performance because documents are deleted.
calibrate-by-deletesboolean Whether the number of deleted entries in an index should be taken into account when counting the entries in the segment. Setting `false` will lead to more frequent merges caused by `max-entries`, but will more aggressively merge segments with many deleted documents, improving search performance.

key-transformers?

Defines the Transformers used to stringify keys for indexing with Lucene

key-transformer*

Defines the Transformer to use for the specified key class
NameTypeDefaultDescription
keystring
transformerstring

indexed-entities?

Defines the set of indexed type names (fully qualified). If values of types that are not included in this set are put in the cache they will not be indexed.

indexed-entity+

Indexed entity type name. Must be either a fully qualified Java class name or a protobuf type name.

property*

Property to pass on to the indexing system

custom-interceptors?

Deprecated since 10.0, will be removed without a replacement. Configures custom interceptors to be added to the cache.

interceptor*

Deprecated since 10.0, will be removed without a replacement.

NameTypeDefaultDescription
afterstringDictates that the custom interceptor appears immediately after the specified interceptor. If the specified interceptor is not found in the interceptor chain, a ConfigurationException will be thrown when the cache starts.
beforestringDictates that the custom interceptor appears immediately before the specified interceptor. If the specified interceptor is not found in the interceptor chain, a ConfigurationException will be thrown when the cache starts.
classstringA fully qualified class name of the new custom interceptor to add to the configuration.
indexintSpecifies a position in the interceptor chain to place the new interceptor. The index starts at 0 and goes up to the number of interceptors in a given configuration. A ConfigurationException is thrown if the index is less than 0 or greater than the maximum number of interceptors in the chain.
positionstringSpecifies a position where to place the new interceptor. Allowed values are FIRST, LAST, and OTHER_THAN_FIRST_OR_LAST

property?

security?

Configures cache-level security.

authorization?

Configures authorization for this cache.

NameTypeDefaultDescription
enabledbooleanfalse Enables authorization checks for this cache. Defaults to true if the authorization element is present.
roles Sets the valid roles required to access this cache.

distributed-cache-configuration

Defines a DIST_* mode cache configuration.

NameTypeDefaultDescription
ownersint2Number of cluster-wide replicas for each cache entry.
segmentsint256Sets the number of hash space segments per cluster. The default value is 256. The value should be at least 20 * the cluster size.
capacity-factordouble1.0 Controls the proportion of entries that reside on the local node in comparison to other nodes in the cluster. You must specify a positive number as the value. The value can also be a fraction such as 1.5.
l1-lifespanlongMaximum lifespan in milliseconds of an entry placed in the L1 cache. By default L1 is disabled unless a positive value is configured for this attribute. If the attribute is not present, L1 is disabled.
l1-cleanup-intervallong60000 Controls how often a cleanup task to prune L1 tracking data is run. Defaults to 10 minutes.
consistent-hash-factorystring The factory to use for generating the consistent hash. Must implement `org.infinispan.distribution.ch.ConsistentHashFactory`. E.g. `org.infinispan.distribution.ch.impl.SyncConsistentHashFactory` can be used to guarantee that multiple distributed caches use exactly the same consistent hash, which for performance reasons is not guaranteed by the default consistent hash factory instance used.
key-partitionerstring The name of the key partitioner class. Must implement `org.infinispan.distribution.ch.KeyPartitioner`. A custom key partitioner can be used as an alternative to grouping, to guarantee that some keys are located in the same segment (and thus their primary owner is the same node). Since 8.2.

state-transfer?

The state transfer configuration for distribution and replicated caches.

NameTypeDefaultDescription
enabledbooleantrueIf enabled, this will cause the cache to ask neighboring caches for state when it starts up, so the cache starts 'warm', although it will impact startup time.
timeoutlong240000The maximum amount of time (ms) to wait for state from neighboring caches, before throwing an exception and aborting startup. Must be greater than or equal to 'remote-timeout' in the clustering configuration.
chunk-sizeinteger512The number of cache entries to batch in each transfer.
await-initial-transferbooleantrueIf enabled, this will cause the cache to wait for initial state transfer to complete before responding to requests.

groups?

Configures grouping of data.

NameTypeDefaultDescription
enabledboolean Enables or disables grouping.

grouper*

NameTypeDefaultDescription
classstring The class to use to group keys. Must implement org.infinispan.distribution.group.Grouper.
NameTypeDefaultDescription
mode
ASYNC Enables asynchronous mode.
SYNC Enables synchronous mode.
SYNCSets the clustered cache mode, ASYNC for asynchronous operation, or SYNC for synchronous operation.
remote-timeoutlong15000In SYNC mode, the timeout (in ms) used to wait for an acknowledgment when making a remote call, after which the call is aborted and an exception is thrown.

partition-handling?

Configures the way this cache reacts to node crashes and split brains.

NameTypeDefaultDescription
enabledboolean Deprecated, use type instead. Enable/disable the partition handling functionality. Defaults to false.
when-split
DENY_READ_WRITES Allow read and write operations only if all replicas of an entry are in the partition. If a partition does not include all replicas of an entry, do not allow cache operations for that entry.
ALLOW_READS Allow read operations for entries and deny write operations unless the partition includes all replicas of an entry.
ALLOW_READ_WRITES Allow read and write operations on caches while a cluster is split into network partitions. Caches remain available and conflicts are resolved during merge.
ALLOW_READ_WRITESThe type of actions that are possible when a split brain scenario is encountered.
merge-policyNONEThe entry merge policy which should be applied on partition merges.
NameTypeDefaultDescription
nameIDUniquely identifies this cache within its cache container.
configurationIDREFThe name of the cache configuration which this configuration inherits from.
statisticsbooleanfalseDetermines whether or not the cache should collect statistics. Keep disabled for optimal performance.
statistics-availablebooleantrueIf set to false, statistics gathering cannot be enabled during runtime. Keep disabled for optimal performance.
unreliable-return-valuesbooleanfalse Specifies whether Infinispan is allowed to disregard the Map contract when providing return values for org.infinispan.Cache#put(Object, Object) and org.infinispan.Cache#remove(Object) methods.

backups?

Defines backup locations for cache data and modifies state transfer properties.

NameTypeDefaultDescription
merge-policyDEFAULT Specifies the fully qualified name of a class that implements the XSiteEntryMergePolicy interface or any of the alias. Use if for ASYNC strategy backup.
max-cleanup-delaypositiveInteger30000 Specifies the maximum delay, in milliseconds, between which tombstone cleanup tasks run. This attribute applies to the asynchronous backup strategy only.
tombstone-map-sizepositiveInteger512000 Specifies the target number of tombstones to store. If the current size of the tombstone map is greater than the target size, then cleanup tasks run more frequently. If the current size of the tombstone map is less than the target size, then cleanup tasks run less frequently. This attribute applies to the asynchronous backup strategy only.

backup*

Configures a remote site as a backup location for cache data.

NameTypeDefaultDescription
sitestring Names the remote site to which the cache backs up data.
strategy
ASYNC Enables asynchronous mode.
SYNC Enables synchronous mode.
ASYNC Sets the strategy for backing up to a remote site.
failure-policy
IGNORE Ignore failed backup operations and write to the local cache.
WARN Log exceptions when backup operations fail and write to the local cache.
FAIL Throw exceptions when backup operations fail and attempt to stop writes to the local cache.
CUSTOM Use a custom failure policy. Requires the "failure-policy-class" attribute.
WARN Controls how local writes to caches are handled if synchronous backup operations fail.
timeoutlong15000 Specifies timeout, in milliseconds, for synchronous and asynchronous backup operations.
two-phase-commitbooleanfalse Enables two-phase commits for optimistic transactional caches with the synchronous backup strategy only.
failure-policy-classstring Specifies the fully qualified name of a class that implements the CustomFailurePolicy interface. Use if failure-policy="CUSTOM".

take-offline?

Specifies the number of failures that can occur before backup locations go offline.

NameTypeDefaultDescription
after-failuresint0 Sets the number of consecutive failures that can occur for backup operations before sites go offline. Specify a negative or zero value to ignore this attribute and use minimum wait time only ("min-wait").
min-waitlong0 Sets the minimum time to wait, in milliseconds, before sites go offline when backup operations fail. If subsequent operations are successful, the minimum wait time is reset. If you set "after-failures", sites go offline when the wait time is reached and the number of failures occur.

state-transfer?

Modifies state transfer operations.

NameTypeDefaultDescription
chunk-sizeint512 Specifies how many cache entries are batched in each transfer request.
timeoutlong1200000 The time (in milliseconds) to wait for the backup site acknowledge the state chunk received and applied. Default value is 20 min.
max-retriesint30 Sets the maximum number of retry attempts for push state failures. Specify a value of 0 (zero) to disable retry attempts. The default value is 30.
wait-timelong2000 Sets the amount of time, in milliseconds, to wait between retry attempts for push state failures. You must specify a value of 1 or more. The default value is 2000.
mode
MANUAL Users must bring backup locations online and initiate state transfer between remote sites.
AUTO Backup locations that use the asynchronous backup strategy can automatically come back online. State transfer operations begin when the remote site connections are stable.
MANUAL Controls whether cross-site state transfer happens manually on user action, which is the default, or automatically when backup locations come online.

backup-for?

Defines the local cache as a backup for a remote cache with a different name.

NameTypeDefaultDescription
remote-cachestring Specifies the name of the remote cache that uses the local cache as a backup.
remote-sitestring Specifies the name of the remote site that backs up data to the local cache.

encoding?

The cache encoding configuration.

Defines content type and encoding for keys and values of the cache.
NameTypeDefaultDescription
media-typestring The media type for both keys and values. When present, takes precedence over the individual configurations for keys and values.

key?

Describes the content-type and encoding.
NameTypeDefaultDescription
media-typestring

value?

Describes the content-type and encoding.
NameTypeDefaultDescription
media-typestring

locking?

The locking configuration of the cache.

NameTypeDefaultDescription
isolation
NONENo locking isolation will be performed. This is only valid in local mode. In clustered mode, READ_COMMITTED will be used instead.
READ_UNCOMMITTEDUnsupported. Actually configures READ_COMMITTED
READ_COMMITTEDRead committed is an isolation level that guarantees that any data read is committed at the moment it is read. However, depending on the outcome of other transactions, successive reads may return different results
REPEATABLE_READRepeatable read is an isolation level that guarantees that any data read is committed at the moment it is read and that, within a transaction, successive reads will always return the same data.
SERIALIZABLEUnsupported. Actually configures REPEATABLE_READ
REPEATABLE_READSets the cache locking isolation level. Infinispan only supports READ_COMMITTED or REPEATABLE_READ isolation level.
stripingbooleanfalseIf true, a pool of shared locks is maintained for all entries that need to be locked. Otherwise, a lock is created per entry in the cache. Lock striping helps control memory footprint but may reduce concurrency in the system.
acquire-timeoutlong10000Maximum time to attempt a particular lock acquisition.
concurrency-levelint32Concurrency level for lock containers. Adjust this value according to the number of concurrent threads interacting with Infinispan.

transaction?

The cache transaction configuration.

NameTypeDefaultDescription
mode
NONECache will not enlist within transactions.
BATCHUses batching to group cache operations together.
NON_XACache will enlist within transactions as a javax.transaction.Synchronization
NON_DURABLE_XACache will enlist within transactions as a javax.transaction.xa.XAResource, without recovery.
FULL_XACache will enlist within transactions as a javax.transaction.xa.XAResource, with recovery.
NONESets the cache transaction mode to one of NONE, BATCH, NON_XA, NON_DURABLE_XA, FULL_XA.
stop-timeoutlong30000If there are any ongoing transactions when a cache is stopped, Infinispan waits for ongoing remote and local transactions to finish. The amount of time to wait for is defined by the cache stop timeout.
locking
OPTIMISTICEnables Optimistic locking.
PESSIMISTICEnables Pessimistic locking.
OPTIMISTICThe locking mode for this cache, one of OPTIMISTIC or PESSIMISTIC.
transaction-manager-lookupstringorg.infinispan.transaction.lookup.GenericTransactionManagerLookup Configure Transaction manager lookup directly using an instance of TransactionManagerLookup. Calling this method marks the cache as transactional.
complete-timeoutlong60000 The duration (millis) in which to keep information about the completion of a transaction. Defaults to 60000.
reaper-intervallong30000 The time interval (millis) at which the thread that cleans up transaction completion information kicks in. Defaults to 30000.
auto-commitbooleantrue If the cache is transactional and transactionAutoCommit is enabled then for single operation transactions the user doesn't need to manually start a transaction, but a transactions is injected by the system. Defaults to true.
recovery-cachestring__recoveryInfoCacheName__ Sets the name of the cache where recovery related information is held. The cache's default name is "__recoveryInfoCacheName__"
notificationsbooleantrue Enables or disables triggering transactional notifications on cache listeners. By default is enabled.

expiration?

The cache expiration configuration.

NameTypeDefaultDescription
max-idlelong-1 Specifies the maximum amount of time, in milliseconds, that cache entries can remain idle. If no operations are performed on entries within the maximum idle time, the entries expire across the cluster. A value of 0 or -1 disables expiration.
lifespanlong-1 Specifies the maximum amount of time, in milliseconds, that cache entries can exist. After reaching their lifespan, cache entries expire across the cluster. A value of 0 or -1 disables expiration.
intervallong60000 Specifies the interval, in milliseconds, between expiration runs. A value of 0 or -1 disables the expiration reaper.
touch
SYNCDelays read operations until the other owners confirm that the timestamp for the entry is updated.
ASYNC Sends touch commands to other owners without waiting for confirmation. This mode allows read operations to return the value of a key even if another node has started expiring it. When that occurs, the read operation does not extend the lifespan of the key.
SYNC Controls how timestamps get updated for entries in clustered caches with maximum idle expiration. The default value is SYNC. This attribute applies only to caches that use synchronous mode. Timestamps are updated asynchronously for caches that use asynchronous mode.

store-as-binary?

Configures the cache to store data in binary format.

Controls whether when stored in memory, keys and values are stored as references to their original objects, or in a serialized, binary format. There are benefits to both approaches, but often if used in a clustered mode, storing objects as binary means that the cost of serialization happens early on, and can be amortized. Further, deserialization costs are incurred lazily which improves throughput. It is possible to control this on a fine-grained basis: you can choose to just store keys or values as binary, or both. DEPRECATED: please use memory element instead
NameTypeDefaultDescription
keysboolean Specify whether keys are stored as binary or not. Enabled by default if the "enabled" attribute is set to true.
valuesboolean Specify whether values are stored as binary or not. Enabled by default if the "enabled" attribute is set to true.

persistence?

Configures the persistence layer for caches.

NameTypeDefaultDescription
passivationbooleanfalse Enables passivation so that data is written to cache stores only if it is evicted from memory. Subsequent requests for passivated entries restore them to memory and remove them from persistent storage. If you do not enable passivation, writes to entries in memory result in writes to cache stores.
connection-attemptsint10 Sets the maximum number of attempts to start each configured `CacheWriter` or `CacheLoader`. An exception is thrown and the cache does not start if the number of connection attempts exceeds the maximum.
connection-intervalint50 Specifies the time, in milliseconds, to wait between connection attempts on startup. A negative or zero value means no wait between connection attempts.
availability-intervalint1000 Specifies the time, in milliseconds, between availability checks to determine if the PersistenceManager is available. In other words, this interval sets how often stores and loaders are polled via their `org.infinispan.persistence.spi.CacheWriter#isAvailable` or `org.infinispan.persistence.spi.CacheLoader#isAvailable` implementation. If a single store or loader is not available, an exception is thrown during cache operations.

cluster-loader

Defines a cluster cache loader.

NameTypeDefaultDescription
remote-timeoutlong15000The timeout when performing remote calls.
NameTypeDefaultDescription
namestringUnused XML attribute.
sharedbooleanfalse Determines if a cache loader is shared between cache instances. Values are true / false (default). This property prevents duplicate writes of data to the cache loader by different cache instances. An example is where all cache instances in a cluster use the same JDBC settings for the same remote, shared database. If true, only the nodes where modifications originate write to the cache store. If false, each cache reacts to potential remote updates by storing the data to the cache store.
preloadbooleanfalse Pre-loads data into memory from the cache loader when the cache starts. Values are true / false (default). This property is useful when data in the cache loader is required immediately after startup to prevent delays with cache operations when the data is loaded lazily. This property can provide a "warm cache" on startup but it impacts performance because it affects start time. Pre-loading data is done locally, so any data loaded is stored locally in the node only. Pre-loaded data is not replicated or distributed. Likewise, data is pre-loaded only up to the maximum configured number of entries in eviction.

property*

A cache loader property with name and value.

store

Defines a custom cache store.

NameTypeDefaultDescription
classstringDefines the class name of a cache store that implements either `CacheLoader`, `CacheWriter`, or both.
NameTypeDefaultDescription
sharedbooleanfalseThis setting should be set to true when multiple cache instances share the same cache store (e.g., multiple nodes in a cluster using a JDBC-based CacheStore pointing to the same, shared database.) Setting this to true avoids multiple cache instances writing the same modification multiple times. If enabled, only the node where the modification originated will write to the cache store. If disabled, each individual cache reacts to a potential remote update by storing the data to the cache store.
transactionalbooleanfalseThis setting should be set to true when the underlying cache store supports transactions and it is desirable for the underlying store and the cache to remain synchronized. With this enabled any Exceptions thrown whilst writing to the underlying store will result in both the store's and cache's transactions rollingback.
preloadbooleanfalseIf true, when the cache starts, data stored in the cache store will be pre-loaded into memory. This is particularly useful when data in the cache store will be needed immediately after startup and you want to avoid cache operations being delayed as a result of loading this data lazily. Can be used to provide a 'warm-cache' on startup, however there is a performance penalty as startup time is affected by this process. Likewise in some cases you cannot pre-load data in caches stores, such as when using shared remote stores.
purgebooleanfalse Empties the specified cache loader at startup. Values are true / false (default). This property takes effect only if read-only is false.
read-onlybooleanfalse Prevents data from being persisted to cache stores. Values are true / false (default). If true, cache stores load entries only. Any modifications to data in the cache do not apply to cache stores.
write-onlybooleanfalse Prevents data from being loaded from cache stores. Values are true / false (default). If true, cache stores write entries only. Any retrievals of data in the cache do not read from the cache store.
max-batch-sizeint100 Sets the maximum size of a batch to insert or delete from the cache store. If the value is less than one, no upper limit applies to the number of operations in a batch.
segmentedbooleantrue Configures cache stores to store data in hash space segments, with the cache's "segments" attribute defining the number of segments.

write-behind?

Configures cache stores as write-behind instead of write-through.

NameTypeDefaultDescription
modification-queue-sizeint1024 Specifies the maximum number of entries in the asynchronous modification queue. When the queue is full, write-through mode is used until the queue can accept new entries.
thread-pool-sizeint1 Specifies the number of threads to apply modifications to the cache store.
fail-silentlybooleanfalse Controls how asynchronous write operations take place when cache stores become unavailable. If "true", asynchronous write operations that fail are re-attempted with the number of times specified in the "connection-attempts" parameter. If all attempts fail, errors are ignored and write operations are not executed on the cache store. If "false", asynchronous write operations that fail are re-attempted when the underlying store becomes available. If the modification queue becomes full before the underlying store becomes available, an error is thrown on all future write operations to the store until the modification queue is flushed. The modification queue is not persisted. If the underlying store does not become available before the asynchronous store is stopped, queued modifications are lost.

property*

Defines a cache store property with name and value.

file-store

Defines a filesystem-based cache store.

NameTypeDefaultDescription
max-entriesint Deprecated since 13.0 which ignores the property. Specifies the maximum number of entries that the file store can hold. To increase the speed of lookups, Single File cache stores index keys and their locations in the file. To avoid excessive memory usage, you can configure the maximum number of entries so that entries are removed permanently from both memory and the cache store when the maximum is exceeded. However, this can lead to data loss. You should only set a maximum number of entries if data can be recomputed or retrieved from an authoritative data store. By default, the value is `-1` which means that there is no maximum number of entries. Deprecated since 13.0, will be removed in 16.0.
pathstring Specifies a filesystem directory for data. The value can be a relative or absolute path. Relative paths are created relative to the configured global persistent location. Absolute paths must be subdirectories of the global persistent location, otherwise an exception is thrown.
open-files-limitint1000 Max number of data and index files opened for reading (current log file and compaction output are not included here - always uses one each). Index files will use 1/10th of list limit with a minimum of 1 and a maximum equal to the number of cache segments.
compaction-thresholddouble0.5 If amount of unused space in some data file gets above this threshold, the file is compacted - entries from that file are copied to a new file and the old file is deleted.

index?

Configure where and how should be the index stored.
NameTypeDefaultDescription
pathstring A location where the store keeps index - this does not have be persistent across restarts, and SSD storage is recommended (the index is accessed randomly).
segmentsint3 Deprecated since 15.0 which ignores the property. This value is ignored as we create an index file per cache segment instead.
max-queue-lengthint1000 Max number of entry writes that are waiting to be written to the index, per index segment.
max-node-sizeint4096 Max size of node (continuous block on filesystem used in index implementation), in bytes.
min-node-sizeint0 If the size of node (continuous block on filesystem used in index implementation) drops below this threshold, the node will try to balance its size with some neighbour node, possibly causing join of multiple nodes.

data?

Configure where and how should be the entries stored - this is the persistent location.
NameTypeDefaultDescription
pathstring A location on disk where the store writes entries. Files are written sequentially, reads are random.
max-file-sizeint16777216 Max size of single file with entries, in bytes.
sync-writesbooleanfalse If true, the write is confirmed only after the entry is fsynced on disk.
NameTypeDefaultDescription
sharedbooleanfalseThis setting should be set to true when multiple cache instances share the same cache store (e.g., multiple nodes in a cluster using a JDBC-based CacheStore pointing to the same, shared database.) Setting this to true avoids multiple cache instances writing the same modification multiple times. If enabled, only the node where the modification originated will write to the cache store. If disabled, each individual cache reacts to a potential remote update by storing the data to the cache store.
transactionalbooleanfalseThis setting should be set to true when the underlying cache store supports transactions and it is desirable for the underlying store and the cache to remain synchronized. With this enabled any Exceptions thrown whilst writing to the underlying store will result in both the store's and cache's transactions rollingback.
preloadbooleanfalseIf true, when the cache starts, data stored in the cache store will be pre-loaded into memory. This is particularly useful when data in the cache store will be needed immediately after startup and you want to avoid cache operations being delayed as a result of loading this data lazily. Can be used to provide a 'warm-cache' on startup, however there is a performance penalty as startup time is affected by this process. Likewise in some cases you cannot pre-load data in caches stores, such as when using shared remote stores.
purgebooleanfalse Empties the specified cache loader at startup. Values are true / false (default). This property takes effect only if read-only is false.
read-onlybooleanfalse Prevents data from being persisted to cache stores. Values are true / false (default). If true, cache stores load entries only. Any modifications to data in the cache do not apply to cache stores.
write-onlybooleanfalse Prevents data from being loaded from cache stores. Values are true / false (default). If true, cache stores write entries only. Any retrievals of data in the cache do not read from the cache store.
max-batch-sizeint100 Sets the maximum size of a batch to insert or delete from the cache store. If the value is less than one, no upper limit applies to the number of operations in a batch.
segmentedbooleantrue Configures cache stores to store data in hash space segments, with the cache's "segments" attribute defining the number of segments.

write-behind?

Configures cache stores as write-behind instead of write-through.

NameTypeDefaultDescription
modification-queue-sizeint1024 Specifies the maximum number of entries in the asynchronous modification queue. When the queue is full, write-through mode is used until the queue can accept new entries.
thread-pool-sizeint1 Specifies the number of threads to apply modifications to the cache store.
fail-silentlybooleanfalse Controls how asynchronous write operations take place when cache stores become unavailable. If "true", asynchronous write operations that fail are re-attempted with the number of times specified in the "connection-attempts" parameter. If all attempts fail, errors are ignored and write operations are not executed on the cache store. If "false", asynchronous write operations that fail are re-attempted when the underlying store becomes available. If the modification queue becomes full before the underlying store becomes available, an error is thrown on all future write operations to the store until the modification queue is flushed. The modification queue is not persisted. If the underlying store does not become available before the asynchronous store is stopped, queued modifications are lost.

property*

Defines a cache store property with name and value.

single-file-store

Deprecated since 13.0. Defines a filesystem-based cache store that stores its elements in a single file.

NameTypeDefaultDescription
max-entriesint Specifies the maximum number of entries that the file store can hold. To increase the speed of lookups, Single File cache stores index keys and their locations in the file. To avoid excessive memory usage, you can configure the maximum number of entries so that entries are removed permanently from both memory and the cache store when the maximum is exceeded. However, this can lead to data loss. You should only set a maximum number of entries if data can be recomputed or retrieved from an authoritative data store. By default, the value is `-1` which means that there is no maximum number of entries.
pathstring Specifies a filesystem directory for data. The value can be a relative or absolute path. Relative paths are created relative to the configured global persistent location. Absolute paths must be subdirectories of the global persistent location, otherwise an exception is thrown.
NameTypeDefaultDescription
sharedbooleanfalseThis setting should be set to true when multiple cache instances share the same cache store (e.g., multiple nodes in a cluster using a JDBC-based CacheStore pointing to the same, shared database.) Setting this to true avoids multiple cache instances writing the same modification multiple times. If enabled, only the node where the modification originated will write to the cache store. If disabled, each individual cache reacts to a potential remote update by storing the data to the cache store.
transactionalbooleanfalseThis setting should be set to true when the underlying cache store supports transactions and it is desirable for the underlying store and the cache to remain synchronized. With this enabled any Exceptions thrown whilst writing to the underlying store will result in both the store's and cache's transactions rollingback.
preloadbooleanfalseIf true, when the cache starts, data stored in the cache store will be pre-loaded into memory. This is particularly useful when data in the cache store will be needed immediately after startup and you want to avoid cache operations being delayed as a result of loading this data lazily. Can be used to provide a 'warm-cache' on startup, however there is a performance penalty as startup time is affected by this process. Likewise in some cases you cannot pre-load data in caches stores, such as when using shared remote stores.
purgebooleanfalse Empties the specified cache loader at startup. Values are true / false (default). This property takes effect only if read-only is false.
read-onlybooleanfalse Prevents data from being persisted to cache stores. Values are true / false (default). If true, cache stores load entries only. Any modifications to data in the cache do not apply to cache stores.
write-onlybooleanfalse Prevents data from being loaded from cache stores. Values are true / false (default). If true, cache stores write entries only. Any retrievals of data in the cache do not read from the cache store.
max-batch-sizeint100 Sets the maximum size of a batch to insert or delete from the cache store. If the value is less than one, no upper limit applies to the number of operations in a batch.
segmentedbooleantrue Configures cache stores to store data in hash space segments, with the cache's "segments" attribute defining the number of segments.

write-behind?

Configures cache stores as write-behind instead of write-through.

NameTypeDefaultDescription
modification-queue-sizeint1024 Specifies the maximum number of entries in the asynchronous modification queue. When the queue is full, write-through mode is used until the queue can accept new entries.
thread-pool-sizeint1 Specifies the number of threads to apply modifications to the cache store.
fail-silentlybooleanfalse Controls how asynchronous write operations take place when cache stores become unavailable. If "true", asynchronous write operations that fail are re-attempted with the number of times specified in the "connection-attempts" parameter. If all attempts fail, errors are ignored and write operations are not executed on the cache store. If "false", asynchronous write operations that fail are re-attempted when the underlying store becomes available. If the modification queue becomes full before the underlying store becomes available, an error is thrown on all future write operations to the store until the modification queue is flushed. The modification queue is not persisted. If the underlying store does not become available before the asynchronous store is stopped, queued modifications are lost.

property*

Defines a cache store property with name and value.

memory?

Controls how the entries are stored in memory

NameTypeDefaultDescription
max-sizestring Defines the size of the data container in bytes. The default unit is B (bytes). You can optionally set one of the following units: KB (kilobytes), MB (megabytes), GB (gigabytes), TB (terabytes), KiB (kibibytes), MiB (mebibytes), GiB (gibibytes) and TiB (tebibytes). Eviction occurs when the approximate memory usage of the data container exceeds the maximum size.
max-countlong-1 Defines the size of the data container by number of entries. Eviction occurs after the container size exceeds the maximum count.
when-full
NONE Do not evict entries. If you define a size for the data container, you should specify either the REMOVE or EXCEPTION exiction strategy.
MANUAL Manually evict entries. This strategy is the same as NONE but does not log errors if you enable passivation without eviction.
REMOVE Automatically evict older entries to make space for new entries. By default REMOVE is always used when you define a size for the data container unless you configure the EXCEPTION strategy.
EXCEPTION Do not evict entries. If the data container reaches the maximum size, exceptions occur for requests to create new entries. You can use this eviction strategy only with transactional caches that use two phase commit.
UNORDEREDDeprecated. Activates REMOVE policy.
FIFODeprecated. Activates REMOVE policy.
LRUDeprecated. Activates REMOVE policy.
LIRSDeprecated. Activates REMOVE policy.
Specifies a strategy for evicting cache entries. Eviction always takes place when you define either the max-size or the max-count (but not both) for the data container. If no strategy is defined, but max-count or max-size is configured, REMOVE is used.
storage
HEAP Stores cache entries in JVM heap memory.
OFF_HEAP Stores cache entries as bytes in native memory outside the Java heap.
OBJECT Deprecated, only added in 11.0 to simplify the transition from the <object/> element. Please use HEAP instead.
BINARY Deprecated, only added in 11.0 to simplify the transition from the <binary/> element. Please use HEAP and set the encoding media type instead.
HEAP Defines the type of memory that the data container uses as storage.

query?

Defines query options for cache

NameTypeDefaultDescription
default-max-resultsinteger100 Limits the number of results returned by a query. Applies to indexed, non-indexed, and hybrid queries. Setting the default-max-results significantly improves performance of queries that don't have an explicit limit set.
hit-count-accuracyinteger10000 Limit the required accuracy of the hit count for the indexed queries to an upper-bound. Setting the hit-count-accuracy optimize the performance of queries targeting large data sets. For optimal results, set this value slightly above the expected hit count. If you do not require accurate hit counts, set it to a low value.

indexing?

Defines indexing options for cache

NameTypeDefaultDescription
enabledbooleanfalse Enables and disables cache indexing. Including the indexing element in cache configuration automatically enables indexing without the need to set the value of this attribute to "true". Indexing is also automatically enabled when the "auto-config" attribute is set to a value of "true".
storage
filesystemLocal filesystem index storage. This is the default.
local-heapJVM heap index storage, not persisted between restarts. Only suitable for small datasets with low concurrency.
filesystemSpecify index storage options.
startup-mode
purge Clears the index when the cache starts.
reindex Rebuilds the index when the cache starts.
auto Automatically triggers an indexing operation when the cache starts. If data is volatile and the index is persistent then the cache is cleared when it starts. If data is persistent and the index is volatile then the cache is reindexed when it starts.
none Cache startup does not trigger an indexing operation. This is the default value.
none Triggers an indexing process when the cache starts.
pathstring Specifies a filesystem path for the index when storage is 'filesystem'. The value can be a relative or absolute path. Relative paths are created relative to the configured global persistent location, or to the current working directory when global state is disabled. By default, the cache name is used as a relative path for index path. When setting a custom value, ensure that there are no conflicts between caches using the same indexed entities.
auto-configbooleanfalseDeprecated since 11.0, with no replacement. Whether or not to apply automatic index configuration based on cache type

index-reader?

Controls index reading parameters.

NameTypeDefaultDescription
refresh-intervallong0 Interval, in milliseconds, to reopen the index reader. By default, the index reader is refreshed on-demand during searches, if new entries were indexed since the last refresh. Configuring with a value larger than zero will make some queries results stale, but query throughput will increase substantially, specially in write heavy scenarios.

index-writer?

Controls index writing parameters

NameTypeDefaultDescription
commit-intervalint1000 Amount of time, in milliseconds, that index changes that are buffered in memory are flushed to the index storage and a commit is performed. Because operation is costly, small values should be avoided. The default is 1000 ms (1 second).
ram-buffer-sizeint32 Maximum amount of memory that can be used for buffering added entries and deletions before they are flushed to the index storage. Large values result in faster indexing but use more memory. For faster indexing performance you should set this attribute instead of `max-buffered-entries`. When used in combination with the `max-buffered-entries` attribute, a flush occurs for whichever event happens first.
max-buffered-entriesint32 Maximum number of entries that can be buffered in-memory before they are flushed to the index storage. Large values result in faster indexing but use more memory. When used in combination with the `ram-buffer-size` attribute, a flush occurs for whichever event happens first.
thread-pool-sizeint1 Number of threads that execute write operations to the index.
queue-countint1 Number of internal queues to use for each indexed type. Each queue holds a batch of modifications that is applied to the index and queues are processed in parallel. Increasing the number of queues will lead to an increase of indexing throughput, but only if the bottleneck is CPU. For optimum results, do not set a value for `queue-count` that is larger than the value for `thread-pool-size`.
queue-sizeint1000 Maximum number of elements each queue can hold. Increasing the `queue-size` value increases the amount of memory that is used during indexing operations. Setting a value that is too small can block indexing operations.
low-level-tracebooleanfalse Enables low-level trace information for indexing operations. Enabling this attribute substantially degrades performance. You should use this low-level tracing only as a last resource for troubleshooting.

index-merge?

Defines properties to control the merge of index segments. An index segment is not related to an Infinispan segment, but represents a section of index in the storage.

NameTypeDefaultDescription
max-entriesint Maximum number of entries that an index segment can have before merging. Segments with more than this number of entries are not merged. Smaller values perform better on frequently changing indexes, larger values provide better search performance if the index does not change often.
factorint Number of segments that are merged at once. With smaller values, merging happens more often, which uses more resources, but the total number of segments will be lower on average, increasing search performance. Larger values (greater than 10) are best for heavy writing scenarios.
min-sizeint Minimum target size of segments, in MB, for background merges. Segments smaller than this size are merged more aggressively. Setting a value that is too large might result in expensive merge operations, even though they are less frequent.
max-sizeint Maximum size of segments, in MB, for background merges. Segments larger than this size are never merged in the background. Settings this to a lower value helps reduce memory requirements and avoids some merging operations at the cost of optimal search speed. This attribute is ignored when forcefully merging an index and `max-forced-size` applies instead.
max-forced-sizeint maximum size of segments, in MB, for forced merges and overrides the `max-size` attribute. Set this to the same value as `max-size` or lower. However setting the value too low degrades search performance because documents are deleted.
calibrate-by-deletesboolean Whether the number of deleted entries in an index should be taken into account when counting the entries in the segment. Setting `false` will lead to more frequent merges caused by `max-entries`, but will more aggressively merge segments with many deleted documents, improving search performance.

key-transformers?

Defines the Transformers used to stringify keys for indexing with Lucene

key-transformer*

Defines the Transformer to use for the specified key class
NameTypeDefaultDescription
keystring
transformerstring

indexed-entities?

Defines the set of indexed type names (fully qualified). If values of types that are not included in this set are put in the cache they will not be indexed.

indexed-entity+

Indexed entity type name. Must be either a fully qualified Java class name or a protobuf type name.

property*

Property to pass on to the indexing system

custom-interceptors?

Deprecated since 10.0, will be removed without a replacement. Configures custom interceptors to be added to the cache.

interceptor*

Deprecated since 10.0, will be removed without a replacement.

NameTypeDefaultDescription
afterstringDictates that the custom interceptor appears immediately after the specified interceptor. If the specified interceptor is not found in the interceptor chain, a ConfigurationException will be thrown when the cache starts.
beforestringDictates that the custom interceptor appears immediately before the specified interceptor. If the specified interceptor is not found in the interceptor chain, a ConfigurationException will be thrown when the cache starts.
classstringA fully qualified class name of the new custom interceptor to add to the configuration.
indexintSpecifies a position in the interceptor chain to place the new interceptor. The index starts at 0 and goes up to the number of interceptors in a given configuration. A ConfigurationException is thrown if the index is less than 0 or greater than the maximum number of interceptors in the chain.
positionstringSpecifies a position where to place the new interceptor. Allowed values are FIRST, LAST, and OTHER_THAN_FIRST_OR_LAST

property?

security?

Configures cache-level security.

authorization?

Configures authorization for this cache.

NameTypeDefaultDescription
enabledbooleanfalse Enables authorization checks for this cache. Defaults to true if the authorization element is present.
roles Sets the valid roles required to access this cache.

scattered-cache

Defines a SCATTERED_* mode cache. Deprecated since 14.0, will be removed in 16.0.

NameTypeDefaultDescription
segmentsint256Number of hash space segments (per cluster). The default value is 256, and should be at least 20 * cluster size.
capacityfloat1 Controls the proportion of entries that will reside on the local node, compared to the other nodes in the cluster. This is just a suggestion, there is no guarantee that a node with a capacity factor of 2 will have twice as many entries as a node with a capacity factor of 1.
consistent-hash-factorystring The factory to use for generating the consistent hash. Must implement `org.infinispan.distribution.ch.ConsistentHashFactory`. E.g. `org.infinispan.distribution.ch.impl.SyncConsistentHashFactory` can be used to guarantee that multiple distributed caches use exactly the same consistent hash, which for performance reasons is not guaranteed by the default consistent hash factory instance used.
key-partitionerstring The name of the key partitioner class. Must implement `org.infinispan.distribution.ch.KeyPartitioner`. A custom key partitioner can be used as an alternative to grouping, to guarantee that some keys are located in the same segment (and thus their primary owner is the same node). Since 8.2.
invalidation-batch-sizeinteger128 Threshold for sending batch invalidations. Once a node registers more updated keys, it sends a batch invalidation to all nodes requesting to remove old versions of the entries. The threshold is also used for second batch invalidation of tombstones for removed entries.
bias-acquisition
NEVERThe bias is never acquired.
ON_WRITEBias is acquired by the writing entry.
ON_WRITE Specifies when is a node allowed to acquire a bias on an entry, serving further reads to the same key locally (despite not being an owner). Acquired bias allows reading data on non-owner, but slows down further writes from other nodes.
bias-lifespanlong300000 Specifies the duration (in Milliseconds) that acquired bias can be held; while the reads will never be stale, tracking that information consumes memory on the primary owner.

state-transfer?

The state transfer configuration for distribution and replicated caches.

NameTypeDefaultDescription
enabledbooleantrueIf enabled, this will cause the cache to ask neighboring caches for state when it starts up, so the cache starts 'warm', although it will impact startup time.
timeoutlong240000The maximum amount of time (ms) to wait for state from neighboring caches, before throwing an exception and aborting startup. Must be greater than or equal to 'remote-timeout' in the clustering configuration.
chunk-sizeinteger512The number of cache entries to batch in each transfer.
await-initial-transferbooleantrueIf enabled, this will cause the cache to wait for initial state transfer to complete before responding to requests.

groups?

Configures grouping of data.

NameTypeDefaultDescription
enabledboolean Enables or disables grouping.

grouper*

NameTypeDefaultDescription
classstring The class to use to group keys. Must implement org.infinispan.distribution.group.Grouper.
NameTypeDefaultDescription
mode
ASYNC Enables asynchronous mode.
SYNC Enables synchronous mode.
SYNCSets the clustered cache mode, ASYNC for asynchronous operation, or SYNC for synchronous operation.
remote-timeoutlong15000In SYNC mode, the timeout (in ms) used to wait for an acknowledgment when making a remote call, after which the call is aborted and an exception is thrown.

partition-handling?

Configures the way this cache reacts to node crashes and split brains.

NameTypeDefaultDescription
enabledboolean Deprecated, use type instead. Enable/disable the partition handling functionality. Defaults to false.
when-split
DENY_READ_WRITES Allow read and write operations only if all replicas of an entry are in the partition. If a partition does not include all replicas of an entry, do not allow cache operations for that entry.
ALLOW_READS Allow read operations for entries and deny write operations unless the partition includes all replicas of an entry.
ALLOW_READ_WRITES Allow read and write operations on caches while a cluster is split into network partitions. Caches remain available and conflicts are resolved during merge.
ALLOW_READ_WRITESThe type of actions that are possible when a split brain scenario is encountered.
merge-policyNONEThe entry merge policy which should be applied on partition merges.
NameTypeDefaultDescription
nameIDUniquely identifies this cache within its cache container.
configurationIDREFThe name of the cache configuration which this configuration inherits from.
statisticsbooleanfalseDetermines whether or not the cache should collect statistics. Keep disabled for optimal performance.
statistics-availablebooleantrueIf set to false, statistics gathering cannot be enabled during runtime. Keep disabled for optimal performance.
unreliable-return-valuesbooleanfalse Specifies whether Infinispan is allowed to disregard the Map contract when providing return values for org.infinispan.Cache#put(Object, Object) and org.infinispan.Cache#remove(Object) methods.

backups?

Defines backup locations for cache data and modifies state transfer properties.

NameTypeDefaultDescription
merge-policyDEFAULT Specifies the fully qualified name of a class that implements the XSiteEntryMergePolicy interface or any of the alias. Use if for ASYNC strategy backup.
max-cleanup-delaypositiveInteger30000 Specifies the maximum delay, in milliseconds, between which tombstone cleanup tasks run. This attribute applies to the asynchronous backup strategy only.
tombstone-map-sizepositiveInteger512000 Specifies the target number of tombstones to store. If the current size of the tombstone map is greater than the target size, then cleanup tasks run more frequently. If the current size of the tombstone map is less than the target size, then cleanup tasks run less frequently. This attribute applies to the asynchronous backup strategy only.

backup*

Configures a remote site as a backup location for cache data.

NameTypeDefaultDescription
sitestring Names the remote site to which the cache backs up data.
strategy
ASYNC Enables asynchronous mode.
SYNC Enables synchronous mode.
ASYNC Sets the strategy for backing up to a remote site.
failure-policy
IGNORE Ignore failed backup operations and write to the local cache.
WARN Log exceptions when backup operations fail and write to the local cache.
FAIL Throw exceptions when backup operations fail and attempt to stop writes to the local cache.
CUSTOM Use a custom failure policy. Requires the "failure-policy-class" attribute.
WARN Controls how local writes to caches are handled if synchronous backup operations fail.
timeoutlong15000 Specifies timeout, in milliseconds, for synchronous and asynchronous backup operations.
two-phase-commitbooleanfalse Enables two-phase commits for optimistic transactional caches with the synchronous backup strategy only.
failure-policy-classstring Specifies the fully qualified name of a class that implements the CustomFailurePolicy interface. Use if failure-policy="CUSTOM".

take-offline?

Specifies the number of failures that can occur before backup locations go offline.

NameTypeDefaultDescription
after-failuresint0 Sets the number of consecutive failures that can occur for backup operations before sites go offline. Specify a negative or zero value to ignore this attribute and use minimum wait time only ("min-wait").
min-waitlong0 Sets the minimum time to wait, in milliseconds, before sites go offline when backup operations fail. If subsequent operations are successful, the minimum wait time is reset. If you set "after-failures", sites go offline when the wait time is reached and the number of failures occur.

state-transfer?

Modifies state transfer operations.

NameTypeDefaultDescription
chunk-sizeint512 Specifies how many cache entries are batched in each transfer request.
timeoutlong1200000 The time (in milliseconds) to wait for the backup site acknowledge the state chunk received and applied. Default value is 20 min.
max-retriesint30 Sets the maximum number of retry attempts for push state failures. Specify a value of 0 (zero) to disable retry attempts. The default value is 30.
wait-timelong2000 Sets the amount of time, in milliseconds, to wait between retry attempts for push state failures. You must specify a value of 1 or more. The default value is 2000.
mode
MANUAL Users must bring backup locations online and initiate state transfer between remote sites.
AUTO Backup locations that use the asynchronous backup strategy can automatically come back online. State transfer operations begin when the remote site connections are stable.
MANUAL Controls whether cross-site state transfer happens manually on user action, which is the default, or automatically when backup locations come online.

backup-for?

Defines the local cache as a backup for a remote cache with a different name.

NameTypeDefaultDescription
remote-cachestring Specifies the name of the remote cache that uses the local cache as a backup.
remote-sitestring Specifies the name of the remote site that backs up data to the local cache.

encoding?

The cache encoding configuration.

Defines content type and encoding for keys and values of the cache.
NameTypeDefaultDescription
media-typestring The media type for both keys and values. When present, takes precedence over the individual configurations for keys and values.

key?

Describes the content-type and encoding.
NameTypeDefaultDescription
media-typestring

value?

Describes the content-type and encoding.
NameTypeDefaultDescription
media-typestring

locking?

The locking configuration of the cache.

NameTypeDefaultDescription
isolation
NONENo locking isolation will be performed. This is only valid in local mode. In clustered mode, READ_COMMITTED will be used instead.
READ_UNCOMMITTEDUnsupported. Actually configures READ_COMMITTED
READ_COMMITTEDRead committed is an isolation level that guarantees that any data read is committed at the moment it is read. However, depending on the outcome of other transactions, successive reads may return different results
REPEATABLE_READRepeatable read is an isolation level that guarantees that any data read is committed at the moment it is read and that, within a transaction, successive reads will always return the same data.
SERIALIZABLEUnsupported. Actually configures REPEATABLE_READ
REPEATABLE_READSets the cache locking isolation level. Infinispan only supports READ_COMMITTED or REPEATABLE_READ isolation level.
stripingbooleanfalseIf true, a pool of shared locks is maintained for all entries that need to be locked. Otherwise, a lock is created per entry in the cache. Lock striping helps control memory footprint but may reduce concurrency in the system.
acquire-timeoutlong10000Maximum time to attempt a particular lock acquisition.
concurrency-levelint32Concurrency level for lock containers. Adjust this value according to the number of concurrent threads interacting with Infinispan.

transaction?

The cache transaction configuration.

NameTypeDefaultDescription
mode
NONECache will not enlist within transactions.
BATCHUses batching to group cache operations together.
NON_XACache will enlist within transactions as a javax.transaction.Synchronization
NON_DURABLE_XACache will enlist within transactions as a javax.transaction.xa.XAResource, without recovery.
FULL_XACache will enlist within transactions as a javax.transaction.xa.XAResource, with recovery.
NONESets the cache transaction mode to one of NONE, BATCH, NON_XA, NON_DURABLE_XA, FULL_XA.
stop-timeoutlong30000If there are any ongoing transactions when a cache is stopped, Infinispan waits for ongoing remote and local transactions to finish. The amount of time to wait for is defined by the cache stop timeout.
locking
OPTIMISTICEnables Optimistic locking.
PESSIMISTICEnables Pessimistic locking.
OPTIMISTICThe locking mode for this cache, one of OPTIMISTIC or PESSIMISTIC.
transaction-manager-lookupstringorg.infinispan.transaction.lookup.GenericTransactionManagerLookup Configure Transaction manager lookup directly using an instance of TransactionManagerLookup. Calling this method marks the cache as transactional.
complete-timeoutlong60000 The duration (millis) in which to keep information about the completion of a transaction. Defaults to 60000.
reaper-intervallong30000 The time interval (millis) at which the thread that cleans up transaction completion information kicks in. Defaults to 30000.
auto-commitbooleantrue If the cache is transactional and transactionAutoCommit is enabled then for single operation transactions the user doesn't need to manually start a transaction, but a transactions is injected by the system. Defaults to true.
recovery-cachestring__recoveryInfoCacheName__ Sets the name of the cache where recovery related information is held. The cache's default name is "__recoveryInfoCacheName__"
notificationsbooleantrue Enables or disables triggering transactional notifications on cache listeners. By default is enabled.

expiration?

The cache expiration configuration.

NameTypeDefaultDescription
max-idlelong-1 Specifies the maximum amount of time, in milliseconds, that cache entries can remain idle. If no operations are performed on entries within the maximum idle time, the entries expire across the cluster. A value of 0 or -1 disables expiration.
lifespanlong-1 Specifies the maximum amount of time, in milliseconds, that cache entries can exist. After reaching their lifespan, cache entries expire across the cluster. A value of 0 or -1 disables expiration.
intervallong60000 Specifies the interval, in milliseconds, between expiration runs. A value of 0 or -1 disables the expiration reaper.
touch
SYNCDelays read operations until the other owners confirm that the timestamp for the entry is updated.
ASYNC Sends touch commands to other owners without waiting for confirmation. This mode allows read operations to return the value of a key even if another node has started expiring it. When that occurs, the read operation does not extend the lifespan of the key.
SYNC Controls how timestamps get updated for entries in clustered caches with maximum idle expiration. The default value is SYNC. This attribute applies only to caches that use synchronous mode. Timestamps are updated asynchronously for caches that use asynchronous mode.

store-as-binary?

Configures the cache to store data in binary format.

Controls whether when stored in memory, keys and values are stored as references to their original objects, or in a serialized, binary format. There are benefits to both approaches, but often if used in a clustered mode, storing objects as binary means that the cost of serialization happens early on, and can be amortized. Further, deserialization costs are incurred lazily which improves throughput. It is possible to control this on a fine-grained basis: you can choose to just store keys or values as binary, or both. DEPRECATED: please use memory element instead
NameTypeDefaultDescription
keysboolean Specify whether keys are stored as binary or not. Enabled by default if the "enabled" attribute is set to true.
valuesboolean Specify whether values are stored as binary or not. Enabled by default if the "enabled" attribute is set to true.

persistence?

Configures the persistence layer for caches.

NameTypeDefaultDescription
passivationbooleanfalse Enables passivation so that data is written to cache stores only if it is evicted from memory. Subsequent requests for passivated entries restore them to memory and remove them from persistent storage. If you do not enable passivation, writes to entries in memory result in writes to cache stores.
connection-attemptsint10 Sets the maximum number of attempts to start each configured `CacheWriter` or `CacheLoader`. An exception is thrown and the cache does not start if the number of connection attempts exceeds the maximum.
connection-intervalint50 Specifies the time, in milliseconds, to wait between connection attempts on startup. A negative or zero value means no wait between connection attempts.
availability-intervalint1000 Specifies the time, in milliseconds, between availability checks to determine if the PersistenceManager is available. In other words, this interval sets how often stores and loaders are polled via their `org.infinispan.persistence.spi.CacheWriter#isAvailable` or `org.infinispan.persistence.spi.CacheLoader#isAvailable` implementation. If a single store or loader is not available, an exception is thrown during cache operations.

cluster-loader

Defines a cluster cache loader.

NameTypeDefaultDescription
remote-timeoutlong15000The timeout when performing remote calls.
NameTypeDefaultDescription
namestringUnused XML attribute.
sharedbooleanfalse Determines if a cache loader is shared between cache instances. Values are true / false (default). This property prevents duplicate writes of data to the cache loader by different cache instances. An example is where all cache instances in a cluster use the same JDBC settings for the same remote, shared database. If true, only the nodes where modifications originate write to the cache store. If false, each cache reacts to potential remote updates by storing the data to the cache store.
preloadbooleanfalse Pre-loads data into memory from the cache loader when the cache starts. Values are true / false (default). This property is useful when data in the cache loader is required immediately after startup to prevent delays with cache operations when the data is loaded lazily. This property can provide a "warm cache" on startup but it impacts performance because it affects start time. Pre-loading data is done locally, so any data loaded is stored locally in the node only. Pre-loaded data is not replicated or distributed. Likewise, data is pre-loaded only up to the maximum configured number of entries in eviction.

property*

A cache loader property with name and value.

store

Defines a custom cache store.

NameTypeDefaultDescription
classstringDefines the class name of a cache store that implements either `CacheLoader`, `CacheWriter`, or both.
NameTypeDefaultDescription
sharedbooleanfalseThis setting should be set to true when multiple cache instances share the same cache store (e.g., multiple nodes in a cluster using a JDBC-based CacheStore pointing to the same, shared database.) Setting this to true avoids multiple cache instances writing the same modification multiple times. If enabled, only the node where the modification originated will write to the cache store. If disabled, each individual cache reacts to a potential remote update by storing the data to the cache store.
transactionalbooleanfalseThis setting should be set to true when the underlying cache store supports transactions and it is desirable for the underlying store and the cache to remain synchronized. With this enabled any Exceptions thrown whilst writing to the underlying store will result in both the store's and cache's transactions rollingback.
preloadbooleanfalseIf true, when the cache starts, data stored in the cache store will be pre-loaded into memory. This is particularly useful when data in the cache store will be needed immediately after startup and you want to avoid cache operations being delayed as a result of loading this data lazily. Can be used to provide a 'warm-cache' on startup, however there is a performance penalty as startup time is affected by this process. Likewise in some cases you cannot pre-load data in caches stores, such as when using shared remote stores.
purgebooleanfalse Empties the specified cache loader at startup. Values are true / false (default). This property takes effect only if read-only is false.
read-onlybooleanfalse Prevents data from being persisted to cache stores. Values are true / false (default). If true, cache stores load entries only. Any modifications to data in the cache do not apply to cache stores.
write-onlybooleanfalse Prevents data from being loaded from cache stores. Values are true / false (default). If true, cache stores write entries only. Any retrievals of data in the cache do not read from the cache store.
max-batch-sizeint100 Sets the maximum size of a batch to insert or delete from the cache store. If the value is less than one, no upper limit applies to the number of operations in a batch.
segmentedbooleantrue Configures cache stores to store data in hash space segments, with the cache's "segments" attribute defining the number of segments.

write-behind?

Configures cache stores as write-behind instead of write-through.

NameTypeDefaultDescription
modification-queue-sizeint1024 Specifies the maximum number of entries in the asynchronous modification queue. When the queue is full, write-through mode is used until the queue can accept new entries.
thread-pool-sizeint1 Specifies the number of threads to apply modifications to the cache store.
fail-silentlybooleanfalse Controls how asynchronous write operations take place when cache stores become unavailable. If "true", asynchronous write operations that fail are re-attempted with the number of times specified in the "connection-attempts" parameter. If all attempts fail, errors are ignored and write operations are not executed on the cache store. If "false", asynchronous write operations that fail are re-attempted when the underlying store becomes available. If the modification queue becomes full before the underlying store becomes available, an error is thrown on all future write operations to the store until the modification queue is flushed. The modification queue is not persisted. If the underlying store does not become available before the asynchronous store is stopped, queued modifications are lost.

property*

Defines a cache store property with name and value.

file-store

Defines a filesystem-based cache store.

NameTypeDefaultDescription
max-entriesint Deprecated since 13.0 which ignores the property. Specifies the maximum number of entries that the file store can hold. To increase the speed of lookups, Single File cache stores index keys and their locations in the file. To avoid excessive memory usage, you can configure the maximum number of entries so that entries are removed permanently from both memory and the cache store when the maximum is exceeded. However, this can lead to data loss. You should only set a maximum number of entries if data can be recomputed or retrieved from an authoritative data store. By default, the value is `-1` which means that there is no maximum number of entries. Deprecated since 13.0, will be removed in 16.0.
pathstring Specifies a filesystem directory for data. The value can be a relative or absolute path. Relative paths are created relative to the configured global persistent location. Absolute paths must be subdirectories of the global persistent location, otherwise an exception is thrown.
open-files-limitint1000 Max number of data and index files opened for reading (current log file and compaction output are not included here - always uses one each). Index files will use 1/10th of list limit with a minimum of 1 and a maximum equal to the number of cache segments.
compaction-thresholddouble0.5 If amount of unused space in some data file gets above this threshold, the file is compacted - entries from that file are copied to a new file and the old file is deleted.

index?

Configure where and how should be the index stored.
NameTypeDefaultDescription
pathstring A location where the store keeps index - this does not have be persistent across restarts, and SSD storage is recommended (the index is accessed randomly).
segmentsint3 Deprecated since 15.0 which ignores the property. This value is ignored as we create an index file per cache segment instead.
max-queue-lengthint1000 Max number of entry writes that are waiting to be written to the index, per index segment.
max-node-sizeint4096 Max size of node (continuous block on filesystem used in index implementation), in bytes.
min-node-sizeint0 If the size of node (continuous block on filesystem used in index implementation) drops below this threshold, the node will try to balance its size with some neighbour node, possibly causing join of multiple nodes.

data?

Configure where and how should be the entries stored - this is the persistent location.
NameTypeDefaultDescription
pathstring A location on disk where the store writes entries. Files are written sequentially, reads are random.
max-file-sizeint16777216 Max size of single file with entries, in bytes.
sync-writesbooleanfalse If true, the write is confirmed only after the entry is fsynced on disk.
NameTypeDefaultDescription
sharedbooleanfalseThis setting should be set to true when multiple cache instances share the same cache store (e.g., multiple nodes in a cluster using a JDBC-based CacheStore pointing to the same, shared database.) Setting this to true avoids multiple cache instances writing the same modification multiple times. If enabled, only the node where the modification originated will write to the cache store. If disabled, each individual cache reacts to a potential remote update by storing the data to the cache store.
transactionalbooleanfalseThis setting should be set to true when the underlying cache store supports transactions and it is desirable for the underlying store and the cache to remain synchronized. With this enabled any Exceptions thrown whilst writing to the underlying store will result in both the store's and cache's transactions rollingback.
preloadbooleanfalseIf true, when the cache starts, data stored in the cache store will be pre-loaded into memory. This is particularly useful when data in the cache store will be needed immediately after startup and you want to avoid cache operations being delayed as a result of loading this data lazily. Can be used to provide a 'warm-cache' on startup, however there is a performance penalty as startup time is affected by this process. Likewise in some cases you cannot pre-load data in caches stores, such as when using shared remote stores.
purgebooleanfalse Empties the specified cache loader at startup. Values are true / false (default). This property takes effect only if read-only is false.
read-onlybooleanfalse Prevents data from being persisted to cache stores. Values are true / false (default). If true, cache stores load entries only. Any modifications to data in the cache do not apply to cache stores.
write-onlybooleanfalse Prevents data from being loaded from cache stores. Values are true / false (default). If true, cache stores write entries only. Any retrievals of data in the cache do not read from the cache store.
max-batch-sizeint100 Sets the maximum size of a batch to insert or delete from the cache store. If the value is less than one, no upper limit applies to the number of operations in a batch.
segmentedbooleantrue Configures cache stores to store data in hash space segments, with the cache's "segments" attribute defining the number of segments.

write-behind?

Configures cache stores as write-behind instead of write-through.

NameTypeDefaultDescription
modification-queue-sizeint1024 Specifies the maximum number of entries in the asynchronous modification queue. When the queue is full, write-through mode is used until the queue can accept new entries.
thread-pool-sizeint1 Specifies the number of threads to apply modifications to the cache store.
fail-silentlybooleanfalse Controls how asynchronous write operations take place when cache stores become unavailable. If "true", asynchronous write operations that fail are re-attempted with the number of times specified in the "connection-attempts" parameter. If all attempts fail, errors are ignored and write operations are not executed on the cache store. If "false", asynchronous write operations that fail are re-attempted when the underlying store becomes available. If the modification queue becomes full before the underlying store becomes available, an error is thrown on all future write operations to the store until the modification queue is flushed. The modification queue is not persisted. If the underlying store does not become available before the asynchronous store is stopped, queued modifications are lost.

property*

Defines a cache store property with name and value.

single-file-store

Deprecated since 13.0. Defines a filesystem-based cache store that stores its elements in a single file.

NameTypeDefaultDescription
max-entriesint Specifies the maximum number of entries that the file store can hold. To increase the speed of lookups, Single File cache stores index keys and their locations in the file. To avoid excessive memory usage, you can configure the maximum number of entries so that entries are removed permanently from both memory and the cache store when the maximum is exceeded. However, this can lead to data loss. You should only set a maximum number of entries if data can be recomputed or retrieved from an authoritative data store. By default, the value is `-1` which means that there is no maximum number of entries.
pathstring Specifies a filesystem directory for data. The value can be a relative or absolute path. Relative paths are created relative to the configured global persistent location. Absolute paths must be subdirectories of the global persistent location, otherwise an exception is thrown.
NameTypeDefaultDescription
sharedbooleanfalseThis setting should be set to true when multiple cache instances share the same cache store (e.g., multiple nodes in a cluster using a JDBC-based CacheStore pointing to the same, shared database.) Setting this to true avoids multiple cache instances writing the same modification multiple times. If enabled, only the node where the modification originated will write to the cache store. If disabled, each individual cache reacts to a potential remote update by storing the data to the cache store.
transactionalbooleanfalseThis setting should be set to true when the underlying cache store supports transactions and it is desirable for the underlying store and the cache to remain synchronized. With this enabled any Exceptions thrown whilst writing to the underlying store will result in both the store's and cache's transactions rollingback.
preloadbooleanfalseIf true, when the cache starts, data stored in the cache store will be pre-loaded into memory. This is particularly useful when data in the cache store will be needed immediately after startup and you want to avoid cache operations being delayed as a result of loading this data lazily. Can be used to provide a 'warm-cache' on startup, however there is a performance penalty as startup time is affected by this process. Likewise in some cases you cannot pre-load data in caches stores, such as when using shared remote stores.
purgebooleanfalse Empties the specified cache loader at startup. Values are true / false (default). This property takes effect only if read-only is false.
read-onlybooleanfalse Prevents data from being persisted to cache stores. Values are true / false (default). If true, cache stores load entries only. Any modifications to data in the cache do not apply to cache stores.
write-onlybooleanfalse Prevents data from being loaded from cache stores. Values are true / false (default). If true, cache stores write entries only. Any retrievals of data in the cache do not read from the cache store.
max-batch-sizeint100 Sets the maximum size of a batch to insert or delete from the cache store. If the value is less than one, no upper limit applies to the number of operations in a batch.
segmentedbooleantrue Configures cache stores to store data in hash space segments, with the cache's "segments" attribute defining the number of segments.

write-behind?

Configures cache stores as write-behind instead of write-through.

NameTypeDefaultDescription
modification-queue-sizeint1024 Specifies the maximum number of entries in the asynchronous modification queue. When the queue is full, write-through mode is used until the queue can accept new entries.
thread-pool-sizeint1 Specifies the number of threads to apply modifications to the cache store.
fail-silentlybooleanfalse Controls how asynchronous write operations take place when cache stores become unavailable. If "true", asynchronous write operations that fail are re-attempted with the number of times specified in the "connection-attempts" parameter. If all attempts fail, errors are ignored and write operations are not executed on the cache store. If "false", asynchronous write operations that fail are re-attempted when the underlying store becomes available. If the modification queue becomes full before the underlying store becomes available, an error is thrown on all future write operations to the store until the modification queue is flushed. The modification queue is not persisted. If the underlying store does not become available before the asynchronous store is stopped, queued modifications are lost.

property*

Defines a cache store property with name and value.

memory?

Controls how the entries are stored in memory

NameTypeDefaultDescription
max-sizestring Defines the size of the data container in bytes. The default unit is B (bytes). You can optionally set one of the following units: KB (kilobytes), MB (megabytes), GB (gigabytes), TB (terabytes), KiB (kibibytes), MiB (mebibytes), GiB (gibibytes) and TiB (tebibytes). Eviction occurs when the approximate memory usage of the data container exceeds the maximum size.
max-countlong-1 Defines the size of the data container by number of entries. Eviction occurs after the container size exceeds the maximum count.
when-full
NONE Do not evict entries. If you define a size for the data container, you should specify either the REMOVE or EXCEPTION exiction strategy.
MANUAL Manually evict entries. This strategy is the same as NONE but does not log errors if you enable passivation without eviction.
REMOVE Automatically evict older entries to make space for new entries. By default REMOVE is always used when you define a size for the data container unless you configure the EXCEPTION strategy.
EXCEPTION Do not evict entries. If the data container reaches the maximum size, exceptions occur for requests to create new entries. You can use this eviction strategy only with transactional caches that use two phase commit.
UNORDEREDDeprecated. Activates REMOVE policy.
FIFODeprecated. Activates REMOVE policy.
LRUDeprecated. Activates REMOVE policy.
LIRSDeprecated. Activates REMOVE policy.
Specifies a strategy for evicting cache entries. Eviction always takes place when you define either the max-size or the max-count (but not both) for the data container. If no strategy is defined, but max-count or max-size is configured, REMOVE is used.
storage
HEAP Stores cache entries in JVM heap memory.
OFF_HEAP Stores cache entries as bytes in native memory outside the Java heap.
OBJECT Deprecated, only added in 11.0 to simplify the transition from the <object/> element. Please use HEAP instead.
BINARY Deprecated, only added in 11.0 to simplify the transition from the <binary/> element. Please use HEAP and set the encoding media type instead.
HEAP Defines the type of memory that the data container uses as storage.

query?

Defines query options for cache

NameTypeDefaultDescription
default-max-resultsinteger100 Limits the number of results returned by a query. Applies to indexed, non-indexed, and hybrid queries. Setting the default-max-results significantly improves performance of queries that don't have an explicit limit set.
hit-count-accuracyinteger10000 Limit the required accuracy of the hit count for the indexed queries to an upper-bound. Setting the hit-count-accuracy optimize the performance of queries targeting large data sets. For optimal results, set this value slightly above the expected hit count. If you do not require accurate hit counts, set it to a low value.

indexing?

Defines indexing options for cache

NameTypeDefaultDescription
enabledbooleanfalse Enables and disables cache indexing. Including the indexing element in cache configuration automatically enables indexing without the need to set the value of this attribute to "true". Indexing is also automatically enabled when the "auto-config" attribute is set to a value of "true".
storage
filesystemLocal filesystem index storage. This is the default.
local-heapJVM heap index storage, not persisted between restarts. Only suitable for small datasets with low concurrency.
filesystemSpecify index storage options.
startup-mode
purge Clears the index when the cache starts.
reindex Rebuilds the index when the cache starts.
auto Automatically triggers an indexing operation when the cache starts. If data is volatile and the index is persistent then the cache is cleared when it starts. If data is persistent and the index is volatile then the cache is reindexed when it starts.
none Cache startup does not trigger an indexing operation. This is the default value.
none Triggers an indexing process when the cache starts.
pathstring Specifies a filesystem path for the index when storage is 'filesystem'. The value can be a relative or absolute path. Relative paths are created relative to the configured global persistent location, or to the current working directory when global state is disabled. By default, the cache name is used as a relative path for index path. When setting a custom value, ensure that there are no conflicts between caches using the same indexed entities.
auto-configbooleanfalseDeprecated since 11.0, with no replacement. Whether or not to apply automatic index configuration based on cache type

index-reader?

Controls index reading parameters.

NameTypeDefaultDescription
refresh-intervallong0 Interval, in milliseconds, to reopen the index reader. By default, the index reader is refreshed on-demand during searches, if new entries were indexed since the last refresh. Configuring with a value larger than zero will make some queries results stale, but query throughput will increase substantially, specially in write heavy scenarios.

index-writer?

Controls index writing parameters

NameTypeDefaultDescription
commit-intervalint1000 Amount of time, in milliseconds, that index changes that are buffered in memory are flushed to the index storage and a commit is performed. Because operation is costly, small values should be avoided. The default is 1000 ms (1 second).
ram-buffer-sizeint32 Maximum amount of memory that can be used for buffering added entries and deletions before they are flushed to the index storage. Large values result in faster indexing but use more memory. For faster indexing performance you should set this attribute instead of `max-buffered-entries`. When used in combination with the `max-buffered-entries` attribute, a flush occurs for whichever event happens first.
max-buffered-entriesint32 Maximum number of entries that can be buffered in-memory before they are flushed to the index storage. Large values result in faster indexing but use more memory. When used in combination with the `ram-buffer-size` attribute, a flush occurs for whichever event happens first.
thread-pool-sizeint1 Number of threads that execute write operations to the index.
queue-countint1 Number of internal queues to use for each indexed type. Each queue holds a batch of modifications that is applied to the index and queues are processed in parallel. Increasing the number of queues will lead to an increase of indexing throughput, but only if the bottleneck is CPU. For optimum results, do not set a value for `queue-count` that is larger than the value for `thread-pool-size`.
queue-sizeint1000 Maximum number of elements each queue can hold. Increasing the `queue-size` value increases the amount of memory that is used during indexing operations. Setting a value that is too small can block indexing operations.
low-level-tracebooleanfalse Enables low-level trace information for indexing operations. Enabling this attribute substantially degrades performance. You should use this low-level tracing only as a last resource for troubleshooting.

index-merge?

Defines properties to control the merge of index segments. An index segment is not related to an Infinispan segment, but represents a section of index in the storage.

NameTypeDefaultDescription
max-entriesint Maximum number of entries that an index segment can have before merging. Segments with more than this number of entries are not merged. Smaller values perform better on frequently changing indexes, larger values provide better search performance if the index does not change often.
factorint Number of segments that are merged at once. With smaller values, merging happens more often, which uses more resources, but the total number of segments will be lower on average, increasing search performance. Larger values (greater than 10) are best for heavy writing scenarios.
min-sizeint Minimum target size of segments, in MB, for background merges. Segments smaller than this size are merged more aggressively. Setting a value that is too large might result in expensive merge operations, even though they are less frequent.
max-sizeint Maximum size of segments, in MB, for background merges. Segments larger than this size are never merged in the background. Settings this to a lower value helps reduce memory requirements and avoids some merging operations at the cost of optimal search speed. This attribute is ignored when forcefully merging an index and `max-forced-size` applies instead.
max-forced-sizeint maximum size of segments, in MB, for forced merges and overrides the `max-size` attribute. Set this to the same value as `max-size` or lower. However setting the value too low degrades search performance because documents are deleted.
calibrate-by-deletesboolean Whether the number of deleted entries in an index should be taken into account when counting the entries in the segment. Setting `false` will lead to more frequent merges caused by `max-entries`, but will more aggressively merge segments with many deleted documents, improving search performance.

key-transformers?

Defines the Transformers used to stringify keys for indexing with Lucene

key-transformer*

Defines the Transformer to use for the specified key class
NameTypeDefaultDescription
keystring
transformerstring

indexed-entities?

Defines the set of indexed type names (fully qualified). If values of types that are not included in this set are put in the cache they will not be indexed.

indexed-entity+

Indexed entity type name. Must be either a fully qualified Java class name or a protobuf type name.

property*

Property to pass on to the indexing system

custom-interceptors?

Deprecated since 10.0, will be removed without a replacement. Configures custom interceptors to be added to the cache.

interceptor*

Deprecated since 10.0, will be removed without a replacement.

NameTypeDefaultDescription
afterstringDictates that the custom interceptor appears immediately after the specified interceptor. If the specified interceptor is not found in the interceptor chain, a ConfigurationException will be thrown when the cache starts.
beforestringDictates that the custom interceptor appears immediately before the specified interceptor. If the specified interceptor is not found in the interceptor chain, a ConfigurationException will be thrown when the cache starts.
classstringA fully qualified class name of the new custom interceptor to add to the configuration.
indexintSpecifies a position in the interceptor chain to place the new interceptor. The index starts at 0 and goes up to the number of interceptors in a given configuration. A ConfigurationException is thrown if the index is less than 0 or greater than the maximum number of interceptors in the chain.
positionstringSpecifies a position where to place the new interceptor. Allowed values are FIRST, LAST, and OTHER_THAN_FIRST_OR_LAST

property?

security?

Configures cache-level security.

authorization?

Configures authorization for this cache.

NameTypeDefaultDescription
enabledbooleanfalse Enables authorization checks for this cache. Defaults to true if the authorization element is present.
roles Sets the valid roles required to access this cache.

scattered-cache-configuration

Defines a SCATTERED_* mode cache configuration. Deprecated since 14.0, will be removed in 16.0.

NameTypeDefaultDescription
segmentsint256Number of hash space segments (per cluster). The default value is 256, and should be at least 20 * cluster size.
capacityfloat1 Controls the proportion of entries that will reside on the local node, compared to the other nodes in the cluster. This is just a suggestion, there is no guarantee that a node with a capacity factor of 2 will have twice as many entries as a node with a capacity factor of 1.
consistent-hash-factorystring The factory to use for generating the consistent hash. Must implement `org.infinispan.distribution.ch.ConsistentHashFactory`. E.g. `org.infinispan.distribution.ch.impl.SyncConsistentHashFactory` can be used to guarantee that multiple distributed caches use exactly the same consistent hash, which for performance reasons is not guaranteed by the default consistent hash factory instance used.
key-partitionerstring The name of the key partitioner class. Must implement `org.infinispan.distribution.ch.KeyPartitioner`. A custom key partitioner can be used as an alternative to grouping, to guarantee that some keys are located in the same segment (and thus their primary owner is the same node). Since 8.2.
invalidation-batch-sizeinteger128 Threshold for sending batch invalidations. Once a node registers more updated keys, it sends a batch invalidation to all nodes requesting to remove old versions of the entries. The threshold is also used for second batch invalidation of tombstones for removed entries.
bias-acquisition
NEVERThe bias is never acquired.
ON_WRITEBias is acquired by the writing entry.
ON_WRITE Specifies when is a node allowed to acquire a bias on an entry, serving further reads to the same key locally (despite not being an owner). Acquired bias allows reading data on non-owner, but slows down further writes from other nodes.
bias-lifespanlong300000 Specifies the duration (in Milliseconds) that acquired bias can be held; while the reads will never be stale, tracking that information consumes memory on the primary owner.

state-transfer?

The state transfer configuration for distribution and replicated caches.

NameTypeDefaultDescription
enabledbooleantrueIf enabled, this will cause the cache to ask neighboring caches for state when it starts up, so the cache starts 'warm', although it will impact startup time.
timeoutlong240000The maximum amount of time (ms) to wait for state from neighboring caches, before throwing an exception and aborting startup. Must be greater than or equal to 'remote-timeout' in the clustering configuration.
chunk-sizeinteger512The number of cache entries to batch in each transfer.
await-initial-transferbooleantrueIf enabled, this will cause the cache to wait for initial state transfer to complete before responding to requests.

groups?

Configures grouping of data.

NameTypeDefaultDescription
enabledboolean Enables or disables grouping.

grouper*

NameTypeDefaultDescription
classstring The class to use to group keys. Must implement org.infinispan.distribution.group.Grouper.
NameTypeDefaultDescription
mode
ASYNC Enables asynchronous mode.
SYNC Enables synchronous mode.
SYNCSets the clustered cache mode, ASYNC for asynchronous operation, or SYNC for synchronous operation.
remote-timeoutlong15000In SYNC mode, the timeout (in ms) used to wait for an acknowledgment when making a remote call, after which the call is aborted and an exception is thrown.

partition-handling?

Configures the way this cache reacts to node crashes and split brains.

NameTypeDefaultDescription
enabledboolean Deprecated, use type instead. Enable/disable the partition handling functionality. Defaults to false.
when-split
DENY_READ_WRITES Allow read and write operations only if all replicas of an entry are in the partition. If a partition does not include all replicas of an entry, do not allow cache operations for that entry.
ALLOW_READS Allow read operations for entries and deny write operations unless the partition includes all replicas of an entry.
ALLOW_READ_WRITES Allow read and write operations on caches while a cluster is split into network partitions. Caches remain available and conflicts are resolved during merge.
ALLOW_READ_WRITESThe type of actions that are possible when a split brain scenario is encountered.
merge-policyNONEThe entry merge policy which should be applied on partition merges.
NameTypeDefaultDescription
nameIDUniquely identifies this cache within its cache container.
configurationIDREFThe name of the cache configuration which this configuration inherits from.
statisticsbooleanfalseDetermines whether or not the cache should collect statistics. Keep disabled for optimal performance.
statistics-availablebooleantrueIf set to false, statistics gathering cannot be enabled during runtime. Keep disabled for optimal performance.
unreliable-return-valuesbooleanfalse Specifies whether Infinispan is allowed to disregard the Map contract when providing return values for org.infinispan.Cache#put(Object, Object) and org.infinispan.Cache#remove(Object) methods.

backups?

Defines backup locations for cache data and modifies state transfer properties.

NameTypeDefaultDescription
merge-policyDEFAULT Specifies the fully qualified name of a class that implements the XSiteEntryMergePolicy interface or any of the alias. Use if for ASYNC strategy backup.
max-cleanup-delaypositiveInteger30000 Specifies the maximum delay, in milliseconds, between which tombstone cleanup tasks run. This attribute applies to the asynchronous backup strategy only.
tombstone-map-sizepositiveInteger512000 Specifies the target number of tombstones to store. If the current size of the tombstone map is greater than the target size, then cleanup tasks run more frequently. If the current size of the tombstone map is less than the target size, then cleanup tasks run less frequently. This attribute applies to the asynchronous backup strategy only.

backup*

Configures a remote site as a backup location for cache data.

NameTypeDefaultDescription
sitestring Names the remote site to which the cache backs up data.
strategy
ASYNC Enables asynchronous mode.
SYNC Enables synchronous mode.
ASYNC Sets the strategy for backing up to a remote site.
failure-policy
IGNORE Ignore failed backup operations and write to the local cache.
WARN Log exceptions when backup operations fail and write to the local cache.
FAIL Throw exceptions when backup operations fail and attempt to stop writes to the local cache.
CUSTOM Use a custom failure policy. Requires the "failure-policy-class" attribute.
WARN Controls how local writes to caches are handled if synchronous backup operations fail.
timeoutlong15000 Specifies timeout, in milliseconds, for synchronous and asynchronous backup operations.
two-phase-commitbooleanfalse Enables two-phase commits for optimistic transactional caches with the synchronous backup strategy only.
failure-policy-classstring Specifies the fully qualified name of a class that implements the CustomFailurePolicy interface. Use if failure-policy="CUSTOM".

take-offline?

Specifies the number of failures that can occur before backup locations go offline.

NameTypeDefaultDescription
after-failuresint0 Sets the number of consecutive failures that can occur for backup operations before sites go offline. Specify a negative or zero value to ignore this attribute and use minimum wait time only ("min-wait").
min-waitlong0 Sets the minimum time to wait, in milliseconds, before sites go offline when backup operations fail. If subsequent operations are successful, the minimum wait time is reset. If you set "after-failures", sites go offline when the wait time is reached and the number of failures occur.

state-transfer?

Modifies state transfer operations.

NameTypeDefaultDescription
chunk-sizeint512 Specifies how many cache entries are batched in each transfer request.
timeoutlong1200000 The time (in milliseconds) to wait for the backup site acknowledge the state chunk received and applied. Default value is 20 min.
max-retriesint30 Sets the maximum number of retry attempts for push state failures. Specify a value of 0 (zero) to disable retry attempts. The default value is 30.
wait-timelong2000 Sets the amount of time, in milliseconds, to wait between retry attempts for push state failures. You must specify a value of 1 or more. The default value is 2000.
mode
MANUAL Users must bring backup locations online and initiate state transfer between remote sites.
AUTO Backup locations that use the asynchronous backup strategy can automatically come back online. State transfer operations begin when the remote site connections are stable.
MANUAL Controls whether cross-site state transfer happens manually on user action, which is the default, or automatically when backup locations come online.

backup-for?

Defines the local cache as a backup for a remote cache with a different name.

NameTypeDefaultDescription
remote-cachestring Specifies the name of the remote cache that uses the local cache as a backup.
remote-sitestring Specifies the name of the remote site that backs up data to the local cache.

encoding?

The cache encoding configuration.

Defines content type and encoding for keys and values of the cache.
NameTypeDefaultDescription
media-typestring The media type for both keys and values. When present, takes precedence over the individual configurations for keys and values.

key?

Describes the content-type and encoding.
NameTypeDefaultDescription
media-typestring

value?

Describes the content-type and encoding.
NameTypeDefaultDescription
media-typestring

locking?

The locking configuration of the cache.

NameTypeDefaultDescription
isolation
NONENo locking isolation will be performed. This is only valid in local mode. In clustered mode, READ_COMMITTED will be used instead.
READ_UNCOMMITTEDUnsupported. Actually configures READ_COMMITTED
READ_COMMITTEDRead committed is an isolation level that guarantees that any data read is committed at the moment it is read. However, depending on the outcome of other transactions, successive reads may return different results
REPEATABLE_READRepeatable read is an isolation level that guarantees that any data read is committed at the moment it is read and that, within a transaction, successive reads will always return the same data.
SERIALIZABLEUnsupported. Actually configures REPEATABLE_READ
REPEATABLE_READSets the cache locking isolation level. Infinispan only supports READ_COMMITTED or REPEATABLE_READ isolation level.
stripingbooleanfalseIf true, a pool of shared locks is maintained for all entries that need to be locked. Otherwise, a lock is created per entry in the cache. Lock striping helps control memory footprint but may reduce concurrency in the system.
acquire-timeoutlong10000Maximum time to attempt a particular lock acquisition.
concurrency-levelint32Concurrency level for lock containers. Adjust this value according to the number of concurrent threads interacting with Infinispan.

transaction?

The cache transaction configuration.

NameTypeDefaultDescription
mode
NONECache will not enlist within transactions.
BATCHUses batching to group cache operations together.
NON_XACache will enlist within transactions as a javax.transaction.Synchronization
NON_DURABLE_XACache will enlist within transactions as a javax.transaction.xa.XAResource, without recovery.
FULL_XACache will enlist within transactions as a javax.transaction.xa.XAResource, with recovery.
NONESets the cache transaction mode to one of NONE, BATCH, NON_XA, NON_DURABLE_XA, FULL_XA.
stop-timeoutlong30000If there are any ongoing transactions when a cache is stopped, Infinispan waits for ongoing remote and local transactions to finish. The amount of time to wait for is defined by the cache stop timeout.
locking
OPTIMISTICEnables Optimistic locking.
PESSIMISTICEnables Pessimistic locking.
OPTIMISTICThe locking mode for this cache, one of OPTIMISTIC or PESSIMISTIC.
transaction-manager-lookupstringorg.infinispan.transaction.lookup.GenericTransactionManagerLookup Configure Transaction manager lookup directly using an instance of TransactionManagerLookup. Calling this method marks the cache as transactional.
complete-timeoutlong60000 The duration (millis) in which to keep information about the completion of a transaction. Defaults to 60000.
reaper-intervallong30000 The time interval (millis) at which the thread that cleans up transaction completion information kicks in. Defaults to 30000.
auto-commitbooleantrue If the cache is transactional and transactionAutoCommit is enabled then for single operation transactions the user doesn't need to manually start a transaction, but a transactions is injected by the system. Defaults to true.
recovery-cachestring__recoveryInfoCacheName__ Sets the name of the cache where recovery related information is held. The cache's default name is "__recoveryInfoCacheName__"
notificationsbooleantrue Enables or disables triggering transactional notifications on cache listeners. By default is enabled.

expiration?

The cache expiration configuration.

NameTypeDefaultDescription
max-idlelong-1 Specifies the maximum amount of time, in milliseconds, that cache entries can remain idle. If no operations are performed on entries within the maximum idle time, the entries expire across the cluster. A value of 0 or -1 disables expiration.
lifespanlong-1 Specifies the maximum amount of time, in milliseconds, that cache entries can exist. After reaching their lifespan, cache entries expire across the cluster. A value of 0 or -1 disables expiration.
intervallong60000 Specifies the interval, in milliseconds, between expiration runs. A value of 0 or -1 disables the expiration reaper.
touch
SYNCDelays read operations until the other owners confirm that the timestamp for the entry is updated.
ASYNC Sends touch commands to other owners without waiting for confirmation. This mode allows read operations to return the value of a key even if another node has started expiring it. When that occurs, the read operation does not extend the lifespan of the key.
SYNC Controls how timestamps get updated for entries in clustered caches with maximum idle expiration. The default value is SYNC. This attribute applies only to caches that use synchronous mode. Timestamps are updated asynchronously for caches that use asynchronous mode.

store-as-binary?

Configures the cache to store data in binary format.

Controls whether when stored in memory, keys and values are stored as references to their original objects, or in a serialized, binary format. There are benefits to both approaches, but often if used in a clustered mode, storing objects as binary means that the cost of serialization happens early on, and can be amortized. Further, deserialization costs are incurred lazily which improves throughput. It is possible to control this on a fine-grained basis: you can choose to just store keys or values as binary, or both. DEPRECATED: please use memory element instead
NameTypeDefaultDescription
keysboolean Specify whether keys are stored as binary or not. Enabled by default if the "enabled" attribute is set to true.
valuesboolean Specify whether values are stored as binary or not. Enabled by default if the "enabled" attribute is set to true.

persistence?

Configures the persistence layer for caches.

NameTypeDefaultDescription
passivationbooleanfalse Enables passivation so that data is written to cache stores only if it is evicted from memory. Subsequent requests for passivated entries restore them to memory and remove them from persistent storage. If you do not enable passivation, writes to entries in memory result in writes to cache stores.
connection-attemptsint10 Sets the maximum number of attempts to start each configured `CacheWriter` or `CacheLoader`. An exception is thrown and the cache does not start if the number of connection attempts exceeds the maximum.
connection-intervalint50 Specifies the time, in milliseconds, to wait between connection attempts on startup. A negative or zero value means no wait between connection attempts.
availability-intervalint1000 Specifies the time, in milliseconds, between availability checks to determine if the PersistenceManager is available. In other words, this interval sets how often stores and loaders are polled via their `org.infinispan.persistence.spi.CacheWriter#isAvailable` or `org.infinispan.persistence.spi.CacheLoader#isAvailable` implementation. If a single store or loader is not available, an exception is thrown during cache operations.

cluster-loader

Defines a cluster cache loader.

NameTypeDefaultDescription
remote-timeoutlong15000The timeout when performing remote calls.
NameTypeDefaultDescription
namestringUnused XML attribute.
sharedbooleanfalse Determines if a cache loader is shared between cache instances. Values are true / false (default). This property prevents duplicate writes of data to the cache loader by different cache instances. An example is where all cache instances in a cluster use the same JDBC settings for the same remote, shared database. If true, only the nodes where modifications originate write to the cache store. If false, each cache reacts to potential remote updates by storing the data to the cache store.
preloadbooleanfalse Pre-loads data into memory from the cache loader when the cache starts. Values are true / false (default). This property is useful when data in the cache loader is required immediately after startup to prevent delays with cache operations when the data is loaded lazily. This property can provide a "warm cache" on startup but it impacts performance because it affects start time. Pre-loading data is done locally, so any data loaded is stored locally in the node only. Pre-loaded data is not replicated or distributed. Likewise, data is pre-loaded only up to the maximum configured number of entries in eviction.

property*

A cache loader property with name and value.

store

Defines a custom cache store.

NameTypeDefaultDescription
classstringDefines the class name of a cache store that implements either `CacheLoader`, `CacheWriter`, or both.
NameTypeDefaultDescription
sharedbooleanfalseThis setting should be set to true when multiple cache instances share the same cache store (e.g., multiple nodes in a cluster using a JDBC-based CacheStore pointing to the same, shared database.) Setting this to true avoids multiple cache instances writing the same modification multiple times. If enabled, only the node where the modification originated will write to the cache store. If disabled, each individual cache reacts to a potential remote update by storing the data to the cache store.
transactionalbooleanfalseThis setting should be set to true when the underlying cache store supports transactions and it is desirable for the underlying store and the cache to remain synchronized. With this enabled any Exceptions thrown whilst writing to the underlying store will result in both the store's and cache's transactions rollingback.
preloadbooleanfalseIf true, when the cache starts, data stored in the cache store will be pre-loaded into memory. This is particularly useful when data in the cache store will be needed immediately after startup and you want to avoid cache operations being delayed as a result of loading this data lazily. Can be used to provide a 'warm-cache' on startup, however there is a performance penalty as startup time is affected by this process. Likewise in some cases you cannot pre-load data in caches stores, such as when using shared remote stores.
purgebooleanfalse Empties the specified cache loader at startup. Values are true / false (default). This property takes effect only if read-only is false.
read-onlybooleanfalse Prevents data from being persisted to cache stores. Values are true / false (default). If true, cache stores load entries only. Any modifications to data in the cache do not apply to cache stores.
write-onlybooleanfalse Prevents data from being loaded from cache stores. Values are true / false (default). If true, cache stores write entries only. Any retrievals of data in the cache do not read from the cache store.
max-batch-sizeint100 Sets the maximum size of a batch to insert or delete from the cache store. If the value is less than one, no upper limit applies to the number of operations in a batch.
segmentedbooleantrue Configures cache stores to store data in hash space segments, with the cache's "segments" attribute defining the number of segments.

write-behind?

Configures cache stores as write-behind instead of write-through.

NameTypeDefaultDescription
modification-queue-sizeint1024 Specifies the maximum number of entries in the asynchronous modification queue. When the queue is full, write-through mode is used until the queue can accept new entries.
thread-pool-sizeint1 Specifies the number of threads to apply modifications to the cache store.
fail-silentlybooleanfalse Controls how asynchronous write operations take place when cache stores become unavailable. If "true", asynchronous write operations that fail are re-attempted with the number of times specified in the "connection-attempts" parameter. If all attempts fail, errors are ignored and write operations are not executed on the cache store. If "false", asynchronous write operations that fail are re-attempted when the underlying store becomes available. If the modification queue becomes full before the underlying store becomes available, an error is thrown on all future write operations to the store until the modification queue is flushed. The modification queue is not persisted. If the underlying store does not become available before the asynchronous store is stopped, queued modifications are lost.

property*

Defines a cache store property with name and value.

file-store

Defines a filesystem-based cache store.

NameTypeDefaultDescription
max-entriesint Deprecated since 13.0 which ignores the property. Specifies the maximum number of entries that the file store can hold. To increase the speed of lookups, Single File cache stores index keys and their locations in the file. To avoid excessive memory usage, you can configure the maximum number of entries so that entries are removed permanently from both memory and the cache store when the maximum is exceeded. However, this can lead to data loss. You should only set a maximum number of entries if data can be recomputed or retrieved from an authoritative data store. By default, the value is `-1` which means that there is no maximum number of entries. Deprecated since 13.0, will be removed in 16.0.
pathstring Specifies a filesystem directory for data. The value can be a relative or absolute path. Relative paths are created relative to the configured global persistent location. Absolute paths must be subdirectories of the global persistent location, otherwise an exception is thrown.
open-files-limitint1000 Max number of data and index files opened for reading (current log file and compaction output are not included here - always uses one each). Index files will use 1/10th of list limit with a minimum of 1 and a maximum equal to the number of cache segments.
compaction-thresholddouble0.5 If amount of unused space in some data file gets above this threshold, the file is compacted - entries from that file are copied to a new file and the old file is deleted.

index?

Configure where and how should be the index stored.
NameTypeDefaultDescription
pathstring A location where the store keeps index - this does not have be persistent across restarts, and SSD storage is recommended (the index is accessed randomly).
segmentsint3 Deprecated since 15.0 which ignores the property. This value is ignored as we create an index file per cache segment instead.
max-queue-lengthint1000 Max number of entry writes that are waiting to be written to the index, per index segment.
max-node-sizeint4096 Max size of node (continuous block on filesystem used in index implementation), in bytes.
min-node-sizeint0 If the size of node (continuous block on filesystem used in index implementation) drops below this threshold, the node will try to balance its size with some neighbour node, possibly causing join of multiple nodes.

data?

Configure where and how should be the entries stored - this is the persistent location.
NameTypeDefaultDescription
pathstring A location on disk where the store writes entries. Files are written sequentially, reads are random.
max-file-sizeint16777216 Max size of single file with entries, in bytes.
sync-writesbooleanfalse If true, the write is confirmed only after the entry is fsynced on disk.
NameTypeDefaultDescription
sharedbooleanfalseThis setting should be set to true when multiple cache instances share the same cache store (e.g., multiple nodes in a cluster using a JDBC-based CacheStore pointing to the same, shared database.) Setting this to true avoids multiple cache instances writing the same modification multiple times. If enabled, only the node where the modification originated will write to the cache store. If disabled, each individual cache reacts to a potential remote update by storing the data to the cache store.
transactionalbooleanfalseThis setting should be set to true when the underlying cache store supports transactions and it is desirable for the underlying store and the cache to remain synchronized. With this enabled any Exceptions thrown whilst writing to the underlying store will result in both the store's and cache's transactions rollingback.
preloadbooleanfalseIf true, when the cache starts, data stored in the cache store will be pre-loaded into memory. This is particularly useful when data in the cache store will be needed immediately after startup and you want to avoid cache operations being delayed as a result of loading this data lazily. Can be used to provide a 'warm-cache' on startup, however there is a performance penalty as startup time is affected by this process. Likewise in some cases you cannot pre-load data in caches stores, such as when using shared remote stores.
purgebooleanfalse Empties the specified cache loader at startup. Values are true / false (default). This property takes effect only if read-only is false.
read-onlybooleanfalse Prevents data from being persisted to cache stores. Values are true / false (default). If true, cache stores load entries only. Any modifications to data in the cache do not apply to cache stores.
write-onlybooleanfalse Prevents data from being loaded from cache stores. Values are true / false (default). If true, cache stores write entries only. Any retrievals of data in the cache do not read from the cache store.
max-batch-sizeint100 Sets the maximum size of a batch to insert or delete from the cache store. If the value is less than one, no upper limit applies to the number of operations in a batch.
segmentedbooleantrue Configures cache stores to store data in hash space segments, with the cache's "segments" attribute defining the number of segments.

write-behind?

Configures cache stores as write-behind instead of write-through.

NameTypeDefaultDescription
modification-queue-sizeint1024 Specifies the maximum number of entries in the asynchronous modification queue. When the queue is full, write-through mode is used until the queue can accept new entries.
thread-pool-sizeint1 Specifies the number of threads to apply modifications to the cache store.
fail-silentlybooleanfalse Controls how asynchronous write operations take place when cache stores become unavailable. If "true", asynchronous write operations that fail are re-attempted with the number of times specified in the "connection-attempts" parameter. If all attempts fail, errors are ignored and write operations are not executed on the cache store. If "false", asynchronous write operations that fail are re-attempted when the underlying store becomes available. If the modification queue becomes full before the underlying store becomes available, an error is thrown on all future write operations to the store until the modification queue is flushed. The modification queue is not persisted. If the underlying store does not become available before the asynchronous store is stopped, queued modifications are lost.

property*

Defines a cache store property with name and value.

single-file-store

Deprecated since 13.0. Defines a filesystem-based cache store that stores its elements in a single file.

NameTypeDefaultDescription
max-entriesint Specifies the maximum number of entries that the file store can hold. To increase the speed of lookups, Single File cache stores index keys and their locations in the file. To avoid excessive memory usage, you can configure the maximum number of entries so that entries are removed permanently from both memory and the cache store when the maximum is exceeded. However, this can lead to data loss. You should only set a maximum number of entries if data can be recomputed or retrieved from an authoritative data store. By default, the value is `-1` which means that there is no maximum number of entries.
pathstring Specifies a filesystem directory for data. The value can be a relative or absolute path. Relative paths are created relative to the configured global persistent location. Absolute paths must be subdirectories of the global persistent location, otherwise an exception is thrown.
NameTypeDefaultDescription
sharedbooleanfalseThis setting should be set to true when multiple cache instances share the same cache store (e.g., multiple nodes in a cluster using a JDBC-based CacheStore pointing to the same, shared database.) Setting this to true avoids multiple cache instances writing the same modification multiple times. If enabled, only the node where the modification originated will write to the cache store. If disabled, each individual cache reacts to a potential remote update by storing the data to the cache store.
transactionalbooleanfalseThis setting should be set to true when the underlying cache store supports transactions and it is desirable for the underlying store and the cache to remain synchronized. With this enabled any Exceptions thrown whilst writing to the underlying store will result in both the store's and cache's transactions rollingback.
preloadbooleanfalseIf true, when the cache starts, data stored in the cache store will be pre-loaded into memory. This is particularly useful when data in the cache store will be needed immediately after startup and you want to avoid cache operations being delayed as a result of loading this data lazily. Can be used to provide a 'warm-cache' on startup, however there is a performance penalty as startup time is affected by this process. Likewise in some cases you cannot pre-load data in caches stores, such as when using shared remote stores.
purgebooleanfalse Empties the specified cache loader at startup. Values are true / false (default). This property takes effect only if read-only is false.
read-onlybooleanfalse Prevents data from being persisted to cache stores. Values are true / false (default). If true, cache stores load entries only. Any modifications to data in the cache do not apply to cache stores.
write-onlybooleanfalse Prevents data from being loaded from cache stores. Values are true / false (default). If true, cache stores write entries only. Any retrievals of data in the cache do not read from the cache store.
max-batch-sizeint100 Sets the maximum size of a batch to insert or delete from the cache store. If the value is less than one, no upper limit applies to the number of operations in a batch.
segmentedbooleantrue Configures cache stores to store data in hash space segments, with the cache's "segments" attribute defining the number of segments.

write-behind?

Configures cache stores as write-behind instead of write-through.

NameTypeDefaultDescription
modification-queue-sizeint1024 Specifies the maximum number of entries in the asynchronous modification queue. When the queue is full, write-through mode is used until the queue can accept new entries.
thread-pool-sizeint1 Specifies the number of threads to apply modifications to the cache store.
fail-silentlybooleanfalse Controls how asynchronous write operations take place when cache stores become unavailable. If "true", asynchronous write operations that fail are re-attempted with the number of times specified in the "connection-attempts" parameter. If all attempts fail, errors are ignored and write operations are not executed on the cache store. If "false", asynchronous write operations that fail are re-attempted when the underlying store becomes available. If the modification queue becomes full before the underlying store becomes available, an error is thrown on all future write operations to the store until the modification queue is flushed. The modification queue is not persisted. If the underlying store does not become available before the asynchronous store is stopped, queued modifications are lost.

property*

Defines a cache store property with name and value.

memory?

Controls how the entries are stored in memory

NameTypeDefaultDescription
max-sizestring Defines the size of the data container in bytes. The default unit is B (bytes). You can optionally set one of the following units: KB (kilobytes), MB (megabytes), GB (gigabytes), TB (terabytes), KiB (kibibytes), MiB (mebibytes), GiB (gibibytes) and TiB (tebibytes). Eviction occurs when the approximate memory usage of the data container exceeds the maximum size.
max-countlong-1 Defines the size of the data container by number of entries. Eviction occurs after the container size exceeds the maximum count.
when-full
NONE Do not evict entries. If you define a size for the data container, you should specify either the REMOVE or EXCEPTION exiction strategy.
MANUAL Manually evict entries. This strategy is the same as NONE but does not log errors if you enable passivation without eviction.
REMOVE Automatically evict older entries to make space for new entries. By default REMOVE is always used when you define a size for the data container unless you configure the EXCEPTION strategy.
EXCEPTION Do not evict entries. If the data container reaches the maximum size, exceptions occur for requests to create new entries. You can use this eviction strategy only with transactional caches that use two phase commit.
UNORDEREDDeprecated. Activates REMOVE policy.
FIFODeprecated. Activates REMOVE policy.
LRUDeprecated. Activates REMOVE policy.
LIRSDeprecated. Activates REMOVE policy.
Specifies a strategy for evicting cache entries. Eviction always takes place when you define either the max-size or the max-count (but not both) for the data container. If no strategy is defined, but max-count or max-size is configured, REMOVE is used.
storage
HEAP Stores cache entries in JVM heap memory.
OFF_HEAP Stores cache entries as bytes in native memory outside the Java heap.
OBJECT Deprecated, only added in 11.0 to simplify the transition from the <object/> element. Please use HEAP instead.
BINARY Deprecated, only added in 11.0 to simplify the transition from the <binary/> element. Please use HEAP and set the encoding media type instead.
HEAP Defines the type of memory that the data container uses as storage.

query?

Defines query options for cache

NameTypeDefaultDescription
default-max-resultsinteger100 Limits the number of results returned by a query. Applies to indexed, non-indexed, and hybrid queries. Setting the default-max-results significantly improves performance of queries that don't have an explicit limit set.
hit-count-accuracyinteger10000 Limit the required accuracy of the hit count for the indexed queries to an upper-bound. Setting the hit-count-accuracy optimize the performance of queries targeting large data sets. For optimal results, set this value slightly above the expected hit count. If you do not require accurate hit counts, set it to a low value.

indexing?

Defines indexing options for cache

NameTypeDefaultDescription
enabledbooleanfalse Enables and disables cache indexing. Including the indexing element in cache configuration automatically enables indexing without the need to set the value of this attribute to "true". Indexing is also automatically enabled when the "auto-config" attribute is set to a value of "true".
storage
filesystemLocal filesystem index storage. This is the default.
local-heapJVM heap index storage, not persisted between restarts. Only suitable for small datasets with low concurrency.
filesystemSpecify index storage options.
startup-mode
purge Clears the index when the cache starts.
reindex Rebuilds the index when the cache starts.
auto Automatically triggers an indexing operation when the cache starts. If data is volatile and the index is persistent then the cache is cleared when it starts. If data is persistent and the index is volatile then the cache is reindexed when it starts.
none Cache startup does not trigger an indexing operation. This is the default value.
none Triggers an indexing process when the cache starts.
pathstring Specifies a filesystem path for the index when storage is 'filesystem'. The value can be a relative or absolute path. Relative paths are created relative to the configured global persistent location, or to the current working directory when global state is disabled. By default, the cache name is used as a relative path for index path. When setting a custom value, ensure that there are no conflicts between caches using the same indexed entities.
auto-configbooleanfalseDeprecated since 11.0, with no replacement. Whether or not to apply automatic index configuration based on cache type

index-reader?

Controls index reading parameters.

NameTypeDefaultDescription
refresh-intervallong0 Interval, in milliseconds, to reopen the index reader. By default, the index reader is refreshed on-demand during searches, if new entries were indexed since the last refresh. Configuring with a value larger than zero will make some queries results stale, but query throughput will increase substantially, specially in write heavy scenarios.

index-writer?

Controls index writing parameters

NameTypeDefaultDescription
commit-intervalint1000 Amount of time, in milliseconds, that index changes that are buffered in memory are flushed to the index storage and a commit is performed. Because operation is costly, small values should be avoided. The default is 1000 ms (1 second).
ram-buffer-sizeint32 Maximum amount of memory that can be used for buffering added entries and deletions before they are flushed to the index storage. Large values result in faster indexing but use more memory. For faster indexing performance you should set this attribute instead of `max-buffered-entries`. When used in combination with the `max-buffered-entries` attribute, a flush occurs for whichever event happens first.
max-buffered-entriesint32 Maximum number of entries that can be buffered in-memory before they are flushed to the index storage. Large values result in faster indexing but use more memory. When used in combination with the `ram-buffer-size` attribute, a flush occurs for whichever event happens first.
thread-pool-sizeint1 Number of threads that execute write operations to the index.
queue-countint1 Number of internal queues to use for each indexed type. Each queue holds a batch of modifications that is applied to the index and queues are processed in parallel. Increasing the number of queues will lead to an increase of indexing throughput, but only if the bottleneck is CPU. For optimum results, do not set a value for `queue-count` that is larger than the value for `thread-pool-size`.
queue-sizeint1000 Maximum number of elements each queue can hold. Increasing the `queue-size` value increases the amount of memory that is used during indexing operations. Setting a value that is too small can block indexing operations.
low-level-tracebooleanfalse Enables low-level trace information for indexing operations. Enabling this attribute substantially degrades performance. You should use this low-level tracing only as a last resource for troubleshooting.

index-merge?

Defines properties to control the merge of index segments. An index segment is not related to an Infinispan segment, but represents a section of index in the storage.

NameTypeDefaultDescription
max-entriesint Maximum number of entries that an index segment can have before merging. Segments with more than this number of entries are not merged. Smaller values perform better on frequently changing indexes, larger values provide better search performance if the index does not change often.
factorint Number of segments that are merged at once. With smaller values, merging happens more often, which uses more resources, but the total number of segments will be lower on average, increasing search performance. Larger values (greater than 10) are best for heavy writing scenarios.
min-sizeint Minimum target size of segments, in MB, for background merges. Segments smaller than this size are merged more aggressively. Setting a value that is too large might result in expensive merge operations, even though they are less frequent.
max-sizeint Maximum size of segments, in MB, for background merges. Segments larger than this size are never merged in the background. Settings this to a lower value helps reduce memory requirements and avoids some merging operations at the cost of optimal search speed. This attribute is ignored when forcefully merging an index and `max-forced-size` applies instead.
max-forced-sizeint maximum size of segments, in MB, for forced merges and overrides the `max-size` attribute. Set this to the same value as `max-size` or lower. However setting the value too low degrades search performance because documents are deleted.
calibrate-by-deletesboolean Whether the number of deleted entries in an index should be taken into account when counting the entries in the segment. Setting `false` will lead to more frequent merges caused by `max-entries`, but will more aggressively merge segments with many deleted documents, improving search performance.

key-transformers?

Defines the Transformers used to stringify keys for indexing with Lucene

key-transformer*

Defines the Transformer to use for the specified key class
NameTypeDefaultDescription
keystring
transformerstring

indexed-entities?

Defines the set of indexed type names (fully qualified). If values of types that are not included in this set are put in the cache they will not be indexed.

indexed-entity+

Indexed entity type name. Must be either a fully qualified Java class name or a protobuf type name.

property*

Property to pass on to the indexing system

custom-interceptors?

Deprecated since 10.0, will be removed without a replacement. Configures custom interceptors to be added to the cache.

interceptor*

Deprecated since 10.0, will be removed without a replacement.

NameTypeDefaultDescription
afterstringDictates that the custom interceptor appears immediately after the specified interceptor. If the specified interceptor is not found in the interceptor chain, a ConfigurationException will be thrown when the cache starts.
beforestringDictates that the custom interceptor appears immediately before the specified interceptor. If the specified interceptor is not found in the interceptor chain, a ConfigurationException will be thrown when the cache starts.
classstringA fully qualified class name of the new custom interceptor to add to the configuration.
indexintSpecifies a position in the interceptor chain to place the new interceptor. The index starts at 0 and goes up to the number of interceptors in a given configuration. A ConfigurationException is thrown if the index is less than 0 or greater than the maximum number of interceptors in the chain.
positionstringSpecifies a position where to place the new interceptor. Allowed values are FIRST, LAST, and OTHER_THAN_FIRST_OR_LAST

property?

security?

Configures cache-level security.

authorization?

Configures authorization for this cache.

NameTypeDefaultDescription
enabledbooleanfalse Enables authorization checks for this cache. Defaults to true if the authorization element is present.
roles Sets the valid roles required to access this cache.
Expand/Collapse All