urn:infinispan:config:store:soft-index:11.0

soft-index-file-store

NameTypeDefaultDescription
open-files-limitint1000 Max number of data files opened for reading (current log file, compaction output and index segments are not included here).
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 Number of index segment files. Increasing this value improves throughput but requires more threads to be spawned.
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.
fetch-statebooleanfalseFetches the persistent state of a cache when joining a cluster. Values are true / false (default). The purpose of this property is to retrieve the persistent state of a cache and apply it to the local cache store of a node when it joins a cluster. Fetching the persistent state does not apply if a cache store is shared because it accesses the same data as the other stores. This property can be `true` for one configured cache loader only. If more than one cache loader fetches the persistent state, a configuration exception is thrown when the cache service starts.
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 "hash.numSegments" property 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.

Expand/Collapse All