| Name | Type | Default | Description |
|---|---|---|---|
| key2StringMapper | string | The class name of a Key2StringMapper to use when mapping keys to strings to be used in the database tables |
stringKeyedTable
Defines the table used to store cache entries
| Name | Type | Default | Description |
|---|---|---|---|
| prefix | string | ispn_entry | Defines the prefix prepended to the cache name used when composing the name of the cache entry table. |
| Name | Type | Default | Description |
|---|---|---|---|
| createOnStart | boolean | false | Determines whether database tables should be created by the store on startup. |
| dropOnExit | boolean | false | Determines whether database tables should be dropped by the store on shutdown. |
| fetchSize | int | 100 | The fetch size used when querying from this table. Used to avoid heap memory exhaustion when query is large. |
| batchSize | int | 100 | The statement batch size used when modifying this table. |
idColumn?
Defines the column in which to store the cache key or bucket id.
| Name | Type | Default | Description |
|---|---|---|---|
| name | string | id | The name of the column used to store the cache key or bucket id. |
| type | string | VARCHAR | The type of the column used to store the cache key or bucket id. |
dataColumn?
Defines the column in which to store the cache entry or bucket.
| Name | Type | Default | Description |
|---|---|---|---|
| name | string | datum | The name of the column used to store the cache entry or bucket. |
| type | string | BINARY | The type of the column used to store the cache entry or bucket. |
timestampColumn?
Defines the column in which to store the timestamp of the cache entry or bucket.
| Name | Type | Default | Description |
|---|---|---|---|
| name | string | version | The name of the column used to store the cache entry or bucket timestamp. |
| type | string | BIGINT | The type of the column used to store the cache entry or bucket timestamp. |
connectionPool
| Name | Type | Default | Description |
|---|---|---|---|
| connectionUrl | string | A JDBC driver-specific connection URL | |
| driverClass | string | The class name of the driver used for connecting to the database. | |
| password | string | The password to use when connecting via connectionUrl | |
| username | string | The username to use when connecting via connectionUrl |
dataSource
| Name | Type | Default | Description |
|---|---|---|---|
| jndiUrl | string | The address of a datasource to use when connecting |
simpleConnection
| Name | Type | Default | Description |
|---|---|---|---|
| connectionUrl | string | A JDBC driver-specific connection URL | |
| driverClass | string | The class name of the driver used for connecting to the database. | |
| password | string | The password to use when connecting via connectionUrl | |
| username | string | The username to use when connecting via connectionUrl |
| Name | Type | Default | Description |
|---|---|---|---|
| fetchPersistentState | boolean | false | If true, fetch persistent state when joining a cluster. If multiple cache stores are chained, only one of them can have this property enabled. Persistent state transfer with a shared cache store does not make sense, as the same persistent store that provides the data will just end up receiving it. Therefore, if a shared cache store is used, the cache will not allow a persistent state transfer even if a cache store has this property set to true. Finally, setting it to true only makes sense if in a clustered environment. Defaults to false. |
| preload | boolean | false | If 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. Defaults to false. |
| ignoreModifications | boolean | false | If true, any operation that modifies the cache (put, remove, clear, store...etc) won't be applied to the cache store. This means that the cache store could become out of sync with the cache. Defaults to false. |
| purgeOnStartup | boolean | false | If true, purges this cache store when it starts up. Defaults to false. |
| shared | boolean | false | This 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. Note that this could be useful if each individual node has its own cache store - perhaps local on-disk. Defaults to false. |
async?
Configuration for the async cache loader. If enabled, this provides you with asynchronous writes to the cache store, giving you 'write-behind' caching.
| Name | Type | Default | Description |
|---|---|---|---|
| enabled | boolean | false | If true, all modifications to this cache store happen asynchronously, on a separate thread. |
| flushLockTimeout | long | 1 | Timeout to acquire the lock which guards the state to be flushed to the cache store periodically. Defaults to 1. |
| modificationQueueSize | int | 1024 | Sets the size of the modification queue for the async store. If updates are made at a rate that is faster than the underlying cache store can process this queue, then the async store behaves like a synchronous store for that period, blocking until the queue can accept more elements. Defaults to 1024 elements. |
| shutdownTimeout | long | 25000 | Timeout to stop the cache store. When the store is stopped it's possible that some modifications still need to be applied; you likely want to set a very large timeout to make sure to not loose data. Defaults to 25 seconds. |
| threadPoolSize | int | 1 | Size of the thread pool whose threads are responsible for applying the modifications. Defaults to 1. |
singleton?
SingletonStore is a delegating cache store used for situations when only one instance in a cluster should interact with the underlying store. The coordinator of the cluster will be responsible for the underlying CacheStore. SingletonStore is a simply facade to a real CacheStore implementation. It always delegates reads to the real CacheStore.
| Name | Type | Default | Description |
|---|---|---|---|
| pushStateTimeout | long | 10000 | If pushStateWhenCoordinator is true, this property sets the maximum number of milliseconds that the process of pushing the in-memory state to the underlying cache loader should take. Defaults to 10 seconds. |
| pushStateWhenCoordinator | boolean | true | If true, when a node becomes the coordinator, it will transfer in-memory state to the underlying cache store. This can be very useful in situations where the coordinator crashes and there's a gap in time until the new coordinator is elected. Defaults to true. |
| enabled | boolean | false | If true, the singleton store cache store is enabled. Defaults to false. |
properties?
Properties passed to the cache store or writer
property*
| Name | Type | Default | Description |
|---|---|---|---|
| name | string | The property name or key | |
| value | string | The property value |