Interface RegionSnapshotService<K,​V>

  • Type Parameters:
    K - the cache entry key type
    V - the cache entry value type

    public interface RegionSnapshotService<K,​V>
    Allows a snapshot of region data to be imported and exported. Example usage:
     // obtain a snapshot
     RegionSnapshot snapshot = region.getSnapshotService();
    
     // export the snapshot, every region in the cache will be exported
     snapshot.save(new File("snapshot.gfd"), SnapshotOptions.GEMFIRE);
    
     // import the snapshot file, updates any existing entries in the region
     snapshot.load(new File("snapshot.gfd"), SnapshotOptions.GEMFIRE);
     
    When parallel export is used, the file name will be modified to include a unique identifier for the member that created the file, so providing a file location of "snapshot.gfd" would result in creation of multiple files with the format "snapshot-unique_id.gfd". When loading files from a parallel export, a directory can be given instead of a single file and all snapshot files in that directory will be loaded.
     // import directory of snapshot files
     snapshot.load(new File("snapshotDir"), SnapshotOptions.GEMFIRE);
     
    The default behavior is to perform all I/O operations on the node where the snapshot operations are invoked. This will involve either collecting or dispersing data over the network if the region is a partitioned region. The snapshot behavior can be changed using SnapshotOptions. For example:
     RegionSnapshotService snapshot = region.getSnapshotService();
     SnapshotFilter filter = new SnapshotFilter() {
       public boolean accept(Entry$lt;K, V$gt; entry) {
         return true;
       }
     };
    
     SnapshotOptions$lt;Object, Object$gt; options = snapshot.createOptions();
     options.setFilter(filter);
    
     snapshot.save(new File("snapshot.gfd"), SnapshotFormat.GEMFIRE, options);
     
    Note that the snapshot does not provide a consistency guarantee. Updates to data during the course of import/export operations could result data inconsistencies.
    Since:
    GemFire 7.0
    See Also:
    Region.getSnapshotService(), SnapshotOptions
    • Field Detail

      • SNAPSHOT_FILE_EXTENSION

        static final java.lang.String SNAPSHOT_FILE_EXTENSION
        File extension for snapshot files
        See Also:
        Constant Field Values
    • Method Detail

      • createOptions

        SnapshotOptions<K,​V> createOptions()
        Creates a SnapshotOptions object configured with default settings. The options can be used to configure snapshot behavior.
        Returns:
        the default options
      • save

        void save​(java.io.File snapshot,
                  SnapshotOptions.SnapshotFormat format)
           throws java.io.IOException
        Exports the region data into the snapshot file.
        Parameters:
        snapshot - the snapshot file (must end in .gfd)
        format - the snapshot format
        Throws:
        java.io.IOException - error writing snapshot
      • save

        void save​(java.io.File snapshot,
                  SnapshotOptions.SnapshotFormat format,
                  SnapshotOptions<K,​V> options)
           throws java.io.IOException
        Exports the region data into the snapshot file by applying user-configured options.
        Parameters:
        snapshot - the snapshot file (must end in .gfd)
        format - the snapshot format
        options - the snapshot options
        Throws:
        java.io.IOException - error writing snapshot
      • load

        void load​(java.io.File snapshot,
                  SnapshotOptions.SnapshotFormat format)
           throws java.io.IOException,
                  java.lang.ClassNotFoundException
        Imports the snapshot file into the specified region. The snapshot parameter can be either a single snapshot file or a directory containing snapshot files. If a single file, it must end in the snapshot file extension (.gfd) to be imported. If a directory, only files in the directory that end in .gfd will be loaded.

        Prior to loading data, the region should have been created and any necessary serializers (either DataSerializer or PdxSerializer) and Instantiators should have been registered.

        Parameters:
        snapshot - the snapshot file (ending in .gfd) or a directory of .gfd snapshot files
        format - the snapshot file format
        Throws:
        java.io.IOException - Unable to import data
        java.lang.ClassNotFoundException - Unable to import data
      • load

        void load​(java.io.File snapshot,
                  SnapshotOptions.SnapshotFormat format,
                  SnapshotOptions<K,​V> options)
           throws java.io.IOException,
                  java.lang.ClassNotFoundException
        Imports the snapshot file into the specified region by applying user-configured options. The snapshot parameter can be either a single snapshot file or a directory containing snapshot files. If a single file, it must end in the snapshot file extension (.gfd) to be imported. If a directory, only files in the directory that end in .gfd will be loaded.

        Prior to loading data, the region should have been created and any necessary serializers (either DataSerializer or PdxSerializer) and Instantiators should have been registered.

        Parameters:
        snapshot - the snapshot file (ending in .gfd) or a directory of .gfd snapshot files
        format - the snapshot file format
        options - the snapshot options
        Throws:
        java.io.IOException - Unable to import data
        java.lang.ClassNotFoundException - Unable to import data