Class 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:

    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 Detail

      • DFLT_CACHE_NAME

        public static final String DFLT_CACHE_NAME
        Default cache name (value is checkpoints).
        See Also:
        Constant Field Values
    • Constructor Detail

      • CacheCheckpointSpi

        public CacheCheckpointSpi()
    • Method Detail

      • 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 interface IgniteSpi
        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.
      • 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 interface IgniteSpi
        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 class IgniteSpiAdapter
      • 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 interface CheckpointSpi
        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 given key is not found this method will return null.
      • saveCheckpoint

        public boolean saveCheckpoint​(String key,
                                      byte[] state,
                                      long timeout,
                                      boolean overwrite)
                               throws IgniteSpiException
        Saves checkpoint to the storage.
        Specified by:
        saveCheckpoint in interface CheckpointSpi
        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. Value 0 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 given key.
        Specified by:
        removeCheckpoint in interface CheckpointSpi
        Parameters:
        key - Key for the checkpoint to remove.
        Returns:
        true if data has been actually removed, false otherwise.