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'.