18.9. Custom Cache Stores
Custom cache stores are a customized implementation of Red Hat JBoss Data Grid cache stores.
In order to create a custom cache store (or loader), implement all or a subset of the following interfaces based on the need:
CacheLoader
CacheWriter
AdvancedCacheLoader
AdvancedCacheWriter
See Section 17.1, “Cache Loaders and Cache Writers” for individual functions of the interfaces.
Note
If the
AdvancedCacheWriter
is not implemented, the expired entries cannot be purged or cleared using the given writer.
Note
If the
AdvancedCacheLoader
is not implemented, the entries stored in the given loader will not be used for preloading and map/reduce iterations.
To migrate the existing cache store to the new API or to write a new store implementation, use
SingleFileStore
as an example. To view the SingleFileStore
example code, download the JBoss Data Grid source code.
Use the following procedure to download
SingleFileStore
example code from the Customer Portal:
Procedure 18.9. Download JBoss Data Grid Source Code
- To access the Red Hat Customer Portal, navigate to https://access.redhat.com/home in a browser.
- Click.
- In the box labeled Red Hat JBoss Middleware, click the button.
- Enter the relevant credentials in the Red Hat Login and Password fields and click .
- In the Software Downloads page, select Data Grid from the list of drop down values.
- From the list of downloadable files, locate Red Hat JBoss Data Grid ${VERSION} Source Code and click . Save and unpack it in a desired location.
- Locate the
SingleFileStore
source code by navigating throughjboss-datagrid-6.4.0-sources/infinispan-6.2.0.Final-redhat-1-src/core/src/main/java/org/infinispan/persistence/file/SingleFileStore.java
.
18.9.1. Custom Cache Store Configuration (Remote Client-Server Mode)
The following is a sample configuration for a custom cache store in Red Hat JBoss Data Grid's Remote Client-Server mode:
Example 18.2. Custom Cache Store Configuration
<local-cache name="default" statistics="true"> <store class="my.package.CustomCacheStore"> <properties> <property name="customStoreProperty" value="10" /> </properties> </store> </local-cache>
For details about the elements and parameters used in this sample configuration, see Section 18.3, “Cache Store Configuration Details (Remote Client-Server Mode)”.
Important
To allow JBoss Data Grid to locate the defined class, create a module using the module of another (relevant) cache store as a template and add it to the
org.jboss.as.clustering.infinispan
module dependencies.
18.9.2. Custom Cache Store Configuration (Library Mode)
The following is a sample configuration for a custom cache store in Red Hat JBoss Data Grid's Library mode:
Example 18.3. Custom Cache Store Configuration
<persistence> <store class="org.infinispan.custom.CustomCacheStore" preload="true" shared="true"> <properties> <property name="customStoreProperty" value="10" /> </properties> </store> </persistence>
For details about the elements and parameters used in this sample configuration, see Section 18.2, “Cache Store Configuration Details (Library Mode)”.