This module contains the API for working with data storages.
To add a new data storage you need:
org.apache.ignite.internal.storage.DataStorageModule;org.apache.ignite.internal.storage.engine.StorageEngine;org.apache.ignite.internal.storage.engine.MvTableStorage;org.apache.ignite.internal.storage.MvPartitionStorage;org.apache.ignite.internal.storage.index.SortedIndexStorage;org.apache.ignite.internal.storage.configurations.StorageProfileConfigurationSchema, with @PolymorphicConfigInstance value equal to org.apache.ignite.internal.storage.engine.StorageEngine.name;org.apache.ignite.internal.storage.configurations.StorageEngineConfigurationSchema with the @ConfigurationExtension annotation and the @ConfigValue field with the name equal to org.apache.ignite.internal.storage.engine.StorageEngine.name;org.apache.ignite.configuration.ConfigurationModule;java.util.ServiceLoader.load(java.lang.Class<S>)):org.apache.ignite.internal.storage.DataStorageModule;org.apache.ignite.configuration.ConfigurationModule.Take org.apache.ignite.internal.storage.impl.TestStorageEngine as an example.
Storage configuration in HOCON:
ignite:
storage.profiles:
test_profile1
engine: test
test_profile2
engine: test
For each table, you may to specify the storage profile.
Table creation example in DDL:
create zone z1 with storage_profiles='test_profile1,test_profile2'; create table t1 with storage_profile='test_profile2' using zone='z1'; create table t2 using zone='z1'; // first storage profile from the zone z1 will be used here: 'test_profile1'.