[ https://issues.apache.org/jira/browse/IGNITE-13345?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Kirill Tkalenko updated IGNITE-13345: ------------------------------------- Description: Summary of [Dev-list|http://apache-ignite-developers.2346864.n4.nabble.com/DISCUSSION-Cache-warmup-td48582.html] # Adding a marker interface *org.apache.ignite.configuration.WarmUpConfiguration*; # Adding a configuration to ## *org.apache.ignite.configuration.DataRegionConfiguration#setWarmUpConfiguration* ## *org.apache.ignite.configuration.DataStorageConfiguration#setDefaultWarmUpConfiguration* # Add an internal warm-up interface that will start in [1] after [2] (after recovery); {code:java} package org.apache.ignite.internal.processors.cache.warmup; import org.apache.ignite.IgniteCheckedException; import org.apache.ignite.configuration.WarmUpConfiguration; import org.apache.ignite.internal.GridKernalContext; import org.apache.ignite.internal.processors.cache.persistence.DataRegion; /** * Interface for warming up. */ public interface WarmUpStrategy<T extends WarmUpConfiguration> { /** * Returns configuration class for mapping to strategy. * * @return Configuration class. */ Class<T> configClass(); /** * Warm up. * * @param kernalCtx Kernal context. * @param cfg Warm-up configuration. * @param region Data region. * @throws IgniteCheckedException if faild. */ void warmUp(GridKernalContext kernalCtx, T cfg, DataRegion region) throws IgniteCheckedException; /** * Closing warm up. * * @throws IgniteCheckedException if faild. */ void close() throws IgniteCheckedException; } {code} # Adding an internal plugin extension for add own strategies; {code:java} package org.apache.ignite.internal.processors.cache.warmup; import java.util.Collection; import org.apache.ignite.plugin.Extension; /** * Interface for getting warm-up strategies from plugins. */ public interface WarmUpStrategySupplier extends Extension { /** * Getting warm-up strategies. * * @return Warm-up strategies. */ Collection<WarmUpStrategy> strategies(); } {code} # Adding strategies: ## Without implementation, for the possibility of disabling the warm-up: *org.apache.ignite.internal.processors.cache.warmup.NoOpWarmUp*, *org.apache.ignite.internal.processors.cache.warmup.NoOpWarmUpConfiguration* ## Loading everything while there is RAM with priority to indexes: *org.apache.ignite.internal.processors.cache.warmup.LoadAllWarmUp*, *org.apache.ignite.internal.processors.cache.warmup.LoadAllWarmUpConfiguration* # Add a command to "control.sh", to stop current warm-up and cancel all others: --warm-up stop [1] - org.apache.ignite.internal.processors.cache.GridCacheProcessor.CacheRecoveryLifecycle#afterLogicalUpdatesApplied [2] - org.apache.ignite.internal.processors.cache.GridCacheProcessor.CacheRecoveryLifecycle#restorePartitionStates was: Summary of [Dev-list|http://apache-ignite-developers.2346864.n4.nabble.com/DISCUSSION-Cache-warmup-td48582.html] # Adding a marker interface *org.apache.ignite.configuration.WarmUpConfiguratio*n; # Adding a configuration to ## *org.apache.ignite.configuration.DataRegionConfiguration#setWarmUpConfiguration* ## *org.apache.ignite.configuration.DataStorageConfiguration#setDefaultWarmUpConfiguration* # Add an internal warm-up interface that will start in [1] after [2] (after recovery); {code:java} package org.apache.ignite.internal.processors.cache.warmup; import org.apache.ignite.IgniteCheckedException; import org.apache.ignite.configuration.WarmUpConfiguration; import org.apache.ignite.internal.GridKernalContext; import org.apache.ignite.internal.processors.cache.persistence.DataRegion; /** * Interface for warming up. */ public interface WarmUpStrategy<T extends WarmUpConfiguration> { /** * Returns configuration class for mapping to strategy. * * @return Configuration class. */ Class<T> configClass(); /** * Warm up. * * @param kernalCtx Kernal context. * @param cfg Warm-up configuration. * @param region Data region. * @throws IgniteCheckedException if faild. */ void warmUp(GridKernalContext kernalCtx, T cfg, DataRegion region) throws IgniteCheckedException; /** * Closing warm up. * * @throws IgniteCheckedException if faild. */ void close() throws IgniteCheckedException; } {code} # Adding an internal plugin extension for add own strategies; {code:java} package org.apache.ignite.internal.processors.cache.warmup; import java.util.Collection; import org.apache.ignite.plugin.Extension; /** * Interface for getting warm-up strategies from plugins. */ public interface WarmUpStrategySupplier extends Extension { /** * Getting warm-up strategies. * * @return Warm-up strategies. */ Collection<WarmUpStrategy> strategies(); } {code} # Adding strategies: ## Without implementation, for the possibility of disabling the warm-up: *org.apache.ignite.internal.processors.cache.warmup.NoOpWarmUp*, *org.apache.ignite.internal.processors.cache.warmup.NoOpWarmUpConfiguration* ## Loading everything while there is RAM with priority to indexes: *org.apache.ignite.internal.processors.cache.warmup.LoadAllWarmUp*, *org.apache.ignite.internal.processors.cache.warmup.LoadAllWarmUpConfiguration* # Add a command to "control.sh", to stop current warm-up and cancel all others: --warm-up stop [1] - org.apache.ignite.internal.processors.cache.GridCacheProcessor.CacheRecoveryLifecycle#afterLogicalUpdatesApplied [2] - org.apache.ignite.internal.processors.cache.GridCacheProcessor.CacheRecoveryLifecycle#restorePartitionStates > Warming up strategy > ------------------- > > Key: IGNITE-13345 > URL: https://issues.apache.org/jira/browse/IGNITE-13345 > Project: Ignite > Issue Type: New Feature > Reporter: Kirill Tkalenko > Assignee: Kirill Tkalenko > Priority: Major > Labels: IEP-40 > Fix For: 2.10 > > > Summary of > [Dev-list|http://apache-ignite-developers.2346864.n4.nabble.com/DISCUSSION-Cache-warmup-td48582.html] > # Adding a marker interface > *org.apache.ignite.configuration.WarmUpConfiguration*; > # Adding a configuration to > ## > *org.apache.ignite.configuration.DataRegionConfiguration#setWarmUpConfiguration* > ## > *org.apache.ignite.configuration.DataStorageConfiguration#setDefaultWarmUpConfiguration* > # Add an internal warm-up interface that will start in [1] after [2] (after > recovery); > {code:java} > package org.apache.ignite.internal.processors.cache.warmup; > import org.apache.ignite.IgniteCheckedException; > import org.apache.ignite.configuration.WarmUpConfiguration; > import org.apache.ignite.internal.GridKernalContext; > import org.apache.ignite.internal.processors.cache.persistence.DataRegion; > /** > * Interface for warming up. > */ > public interface WarmUpStrategy<T extends WarmUpConfiguration> { > /** > * Returns configuration class for mapping to strategy. > * > * @return Configuration class. > */ > Class<T> configClass(); > /** > * Warm up. > * > * @param kernalCtx Kernal context. > * @param cfg Warm-up configuration. > * @param region Data region. > * @throws IgniteCheckedException if faild. > */ > void warmUp(GridKernalContext kernalCtx, T cfg, DataRegion region) throws > IgniteCheckedException; > /** > * Closing warm up. > * > * @throws IgniteCheckedException if faild. > */ > void close() throws IgniteCheckedException; > } > {code} > # Adding an internal plugin extension for add own strategies; > {code:java} > package org.apache.ignite.internal.processors.cache.warmup; > > import java.util.Collection; > import org.apache.ignite.plugin.Extension; > > /** > * Interface for getting warm-up strategies from plugins. > */ > public interface WarmUpStrategySupplier extends Extension { > /** > * Getting warm-up strategies. > * > * @return Warm-up strategies. > */ > Collection<WarmUpStrategy> strategies(); > } > {code} > # Adding strategies: > ## Without implementation, for the possibility of disabling the warm-up: > *org.apache.ignite.internal.processors.cache.warmup.NoOpWarmUp*, > *org.apache.ignite.internal.processors.cache.warmup.NoOpWarmUpConfiguration* > ## Loading everything while there is RAM with priority to indexes: > *org.apache.ignite.internal.processors.cache.warmup.LoadAllWarmUp*, > *org.apache.ignite.internal.processors.cache.warmup.LoadAllWarmUpConfiguration* > # Add a command to "control.sh", to stop current warm-up and cancel all > others: --warm-up stop > [1] - > org.apache.ignite.internal.processors.cache.GridCacheProcessor.CacheRecoveryLifecycle#afterLogicalUpdatesApplied > [2] - > org.apache.ignite.internal.processors.cache.GridCacheProcessor.CacheRecoveryLifecycle#restorePartitionStates -- This message was sent by Atlassian Jira (v8.3.4#803005)