Class CacheCheckpointSpi
- java.lang.Object
-
- org.apache.ignite.spi.IgniteSpiAdapter
-
- org.apache.ignite.spi.checkpoint.cache.CacheCheckpointSpi
-
- All Implemented Interfaces:
CheckpointSpi
,IgniteSpi
@IgniteSpiMultipleInstancesSupport(true) public class CacheCheckpointSpi extends IgniteSpiAdapter implements CheckpointSpi
This class defines cache-based implementation for checkpoint SPI.Configuration
Mandatory
This SPI has no mandatory configuration parameters.Optional
This SPI has following optional configuration parameters:- Cache name (see
setCacheName(String)
)
Java Example
CacheCheckpointSpi
can be configured as follows:IgniteConfiguration cfg = new IgniteConfiguration(); String cacheName = "checkpoints"; GridCacheConfiguration cacheConfig = new GridCacheConfiguration(); cacheConfig.setName(cacheName); GridCacheCheckpointSpi spi = new GridCacheCheckpointSpi(); spi.setCacheName(cacheName); cfg.setCacheConfiguration(cacheConfig); // Override default checkpoint SPI. cfg.setCheckpointSpi(cpSpi); // Start grid. G.start(cfg);
Spring Example
CacheCheckpointSpi
can be configured from Spring XML configuration file:<bean id="grid.custom.cfg" class="org.apache.ignite.configuration.IgniteConfiguration" singleton="true"> ... <!-- Cache configuration. --> <property name="cacheConfiguration"> <list> <bean class="org.apache.ignite.cache.CacheConfiguration"> <property name="name" value="CACHE_NAME"/> </bean> </list> </property> <!-- SPI configuration. --> <property name="checkpointSpi"> <bean class="org.apache.ignite.spi.checkpoint.cache.CacheCheckpointSpi"> <property name="cacheName" value="CACHE_NAME"/> </bean> </property> ... </bean>
For information about Spring framework visit www.springframework.org- See Also:
CheckpointSpi
-
-
Field Summary
Fields Modifier and Type Field Description static String
DFLT_CACHE_NAME
Default cache name (value is checkpoints).-
Fields inherited from class org.apache.ignite.spi.IgniteSpiAdapter
ignite, igniteInstanceName
-
-
Constructor Summary
Constructors Constructor Description CacheCheckpointSpi()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description String
getCacheName()
Gets cache name to be used by this SPI..@org.jetbrains.annotations.Nullable byte[]
loadCheckpoint(String key)
Loads checkpoint from storage by its unique key.protected void
onContextDestroyed0()
Method to be called in the beginning of onContextDestroyed() method.protected void
onContextInitialized0(IgniteSpiContext spiCtx)
Method to be called in the end of onContextInitialized method.boolean
removeCheckpoint(String key)
This method instructs the checkpoint provider to clean saved data for a givenkey
.boolean
saveCheckpoint(String key, byte[] state, long timeout, boolean overwrite)
Saves checkpoint to the storage.CacheCheckpointSpi
setCacheName(String cacheName)
Sets cache name to be used by this SPI.void
setCheckpointListener(CheckpointListener lsnr)
Sets the checkpoint listener.CacheCheckpointSpi
setName(String name)
Sets SPI name.void
spiStart(@Nullable String igniteInstanceName)
This method is called to start SPI.void
spiStop()
This method is called to stop SPI.String
toString()
-
Methods inherited from class org.apache.ignite.spi.IgniteSpiAdapter
addTimeoutObject, assertParameter, checkConfigurationConsistency0, clientFailureDetectionTimeout, configInfo, createSpiAttributeName, failureDetectionTimeout, failureDetectionTimeoutEnabled, failureDetectionTimeoutEnabled, getConsistentAttributeNames, getExceptionRegistry, getLocalNode, getName, getNodeAttributes, getSpiContext, ignite, initFailureDetectionTimeout, injectables, injectResources, isNodeStopping, onBeforeStart, onClientDisconnected, onClientReconnected, onContextDestroyed, onContextInitialized, registerMBean, removeTimeoutObject, started, startInfo, startStopwatch, stopInfo, unregisterMBean
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.apache.ignite.spi.IgniteSpi
getName, getNodeAttributes, onClientDisconnected, onClientReconnected, onContextDestroyed, onContextInitialized
-
-
-
-
Field Detail
-
DFLT_CACHE_NAME
public static final String DFLT_CACHE_NAME
Default cache name (value is checkpoints).- See Also:
- Constant Field Values
-
-
Method Detail
-
setCacheName
@IgniteSpiConfiguration(optional=true) public CacheCheckpointSpi setCacheName(String cacheName)
Sets cache name to be used by this SPI.If cache name is not provided
DFLT_CACHE_NAME
is used.- Parameters:
cacheName
- Cache name.- Returns:
this
for chaining.
-
getCacheName
public String getCacheName()
Gets cache name to be used by this SPI..- Returns:
- Cache name to be used by this SPI.
-
spiStart
public void spiStart(@Nullable @Nullable String igniteInstanceName) throws IgniteSpiException
This method is called to start SPI. After this method returns successfully kernel assumes that SPI is fully operational.- Specified by:
spiStart
in interfaceIgniteSpi
- Parameters:
igniteInstanceName
- Name of Ignite instance this SPI is being started for (null
for default Ignite instance).- Throws:
IgniteSpiException
- Throws in case of any error during SPI start.
-
onContextInitialized0
protected void onContextInitialized0(IgniteSpiContext spiCtx) throws IgniteSpiException
Method to be called in the end of onContextInitialized method.- Overrides:
onContextInitialized0
in classIgniteSpiAdapter
- Parameters:
spiCtx
- SPI context.- Throws:
IgniteSpiException
- In case of errors.
-
spiStop
public void spiStop() throws IgniteSpiException
This method is called to stop SPI. After this method returns kernel assumes that this SPI is finished and all resources acquired by it are released.Note that this method can be called at any point including during recovery of failed start. It should make no assumptions on what state SPI will be in when this method is called.
- Specified by:
spiStop
in interfaceIgniteSpi
- Throws:
IgniteSpiException
- Thrown in case of any error during SPI stop.
-
onContextDestroyed0
protected void onContextDestroyed0()
Method to be called in the beginning of onContextDestroyed() method.- Overrides:
onContextDestroyed0
in classIgniteSpiAdapter
-
loadCheckpoint
@Nullable public @org.jetbrains.annotations.Nullable byte[] loadCheckpoint(String key) throws IgniteSpiException
Loads checkpoint from storage by its unique key.- Specified by:
loadCheckpoint
in interfaceCheckpointSpi
- Parameters:
key
- Checkpoint key.- Returns:
- Loaded data or
null
if there is no data for a given key. - Throws:
IgniteSpiException
- Thrown in case of any error while loading checkpoint data. Note that in case when givenkey
is not found this method will returnnull
.
-
saveCheckpoint
public boolean saveCheckpoint(String key, byte[] state, long timeout, boolean overwrite) throws IgniteSpiException
Saves checkpoint to the storage.- Specified by:
saveCheckpoint
in interfaceCheckpointSpi
- Parameters:
key
- Checkpoint unique key.state
- Saved data.timeout
- Every intermediate data stored by checkpoint provider should have a timeout. Timeout allows for effective resource management by checkpoint provider by cleaning saved data that are not needed anymore. Generally, the user should choose the minimum possible timeout to avoid long-term resource acquisition by checkpoint provider. Value0
means that timeout will never expire.overwrite
- Whether or not overwrite checkpoint if it already exists.- Returns:
true
if checkpoint has been actually saved,false
otherwise.- Throws:
IgniteSpiException
- Thrown in case of any error while saving checkpoint data.
-
removeCheckpoint
public boolean removeCheckpoint(String key)
This method instructs the checkpoint provider to clean saved data for a givenkey
.- Specified by:
removeCheckpoint
in interfaceCheckpointSpi
- Parameters:
key
- Key for the checkpoint to remove.- Returns:
true
if data has been actually removed,false
otherwise.
-
setCheckpointListener
public void setCheckpointListener(CheckpointListener lsnr)
Sets the checkpoint listener.- Specified by:
setCheckpointListener
in interfaceCheckpointSpi
- Parameters:
lsnr
- The listener to set ornull
.
-
setName
public CacheCheckpointSpi setName(String name)
Sets SPI name.- Overrides:
setName
in classIgniteSpiAdapter
- Parameters:
name
- SPI name.- Returns:
this
for chaining.
-
-