Overview
This chapter explains how you set cache configuration parameters.
Configuration Example
Below is an example of a cache configuration.
<bean class="org.apache.ignite.configuration.IgniteConfiguration">
<property name="cacheConfiguration">
<bean class="org.apache.ignite.configuration.CacheConfiguration">
<property name="name" value="myCache"/>
<property name="cacheMode" value="PARTITIONED"/>
<property name="backups" value="2"/>
<property name="rebalanceMode" value="SYNC"/>
<property name="writeSynchronizationMode" value="FULL_SYNC"/>
<property name="partitionLossPolicy" value="READ_ONLY_SAFE"/>
<!-- Other parameters -->
</bean>
</property>
</bean>
For the full list of parameters, refer to the CacheConfiguration javadoc.
Parameter | Description | Default Value |
---|---|---|
|
The cache name. |
None. |
|
The In the In the See the Partitioned/Replicated Mode section for more details. |
|
|
Write synchronization mode. Refer to the Configuring Partition Backups section. |
|
|
This parameter controls the way the rebalancing process is performed. Possible values include:
|
|
|
The number of backup partitions for the cache. |
|
|
|
CacheConfiguration cacheCfg = new CacheConfiguration("myCache");
cacheCfg.setCacheMode(CacheMode.PARTITIONED);
cacheCfg.setBackups(2);
cacheCfg.setRebalanceMode(CacheRebalanceMode.SYNC);
cacheCfg.setWriteSynchronizationMode(CacheWriteSynchronizationMode.FULL_SYNC);
cacheCfg.setPartitionLossPolicy(PartitionLossPolicy.READ_ONLY_SAFE);
IgniteConfiguration cfg = new IgniteConfiguration();
cfg.setCacheConfiguration(cacheCfg);
// Start a node.
Ignition.start(cfg);
For the full list of parameters, refer to CacheConfiguration javadoc.
var cfg = new IgniteConfiguration
{
CacheConfiguration = new[] {
new CacheConfiguration {
Name = "myCache",
CacheMode = CacheMode.Partitioned,
Backups = 2,
RebalanceMode = CacheRebalanceMode.Sync,
WriteSynchronizationMode = CacheWriteSynchronizationMode.FullSync,
PartitionLossPolicy = PartitionLossPolicy.ReadOnlySafe
}
}
};
Ignition.Start(cfg);
CREATE TABLE IF NOT EXISTS Person (
id int,
city_id int,
name varchar,
age int,
company varchar,
PRIMARY KEY (id, city_id)
) WITH "cache_name=myCache,template=partitioned,backups=2";
For the full list of parameters, refer to the CREATE TABLE section.
Cache Templates
A cache template is an instance of CacheConfiguration
that can be registered in the cluster and used later as a basis for creating new caches. A cache created from a template inherits all the properties of the template.
To create a template, define a cache configuration and add it to the Ignite
instance, as shown below. If you want do define a cache template in the XML configuration file, you must add an asterisk to the template’s name. This is required to indicate that the configuration is a template and not an actual cache.
<property name="cacheConfiguration">
<list>
<bean abstract="true" class="org.apache.ignite.configuration.CacheConfiguration" id="cache-template-bean">
<!-- when you create a template via XML configuration,
you must add an asterisk to the name of the template -->
<property name="name" value="myCacheTemplate*"/>
<property name="cacheMode" value="PARTITIONED"/>
<property name="backups" value="2"/>
<!-- Other cache parameters -->
</bean>
</list>
</property>
IgniteConfiguration igniteCfg = new IgniteConfiguration();
try (Ignite ignite = Ignition.start(igniteCfg)) {
CacheConfiguration cacheCfg = new CacheConfiguration("myCacheTemplate");
cacheCfg.setBackups(2);
cacheCfg.setCacheMode(CacheMode.PARTITIONED);
// Register the cache template in Ignite.
ignite.addCacheConfiguration(cacheCfg);
}
var ignite = Ignition.Start();
var cfg = new CacheConfiguration {
Name = "myCacheTemplate*",
CacheMode = CacheMode.Partitioned,
Backups = 2
};
ignite.AddCacheConfiguration(cfg);
Once the cache template is registered in the cluster, as shown in the code snippet above, you can use it to create another cache with the same configuration.
© 2020 GridGain Systems, Inc. All Rights Reserved. Privacy Policy | Legal Notices. GridGain® is a registered trademark of GridGain Systems, Inc.
Apache, Apache Ignite, the Apache feather and the Apache Ignite logo are either registered trademarks or trademarks of The Apache Software Foundation.