RegionSnapshotService (Apache Geode 2.0.2)
Description: declaration: package: org.apache.geode.cache.snapshot, interface: RegionSnapshotService

Package org.apache.geode.cache.snapshot

# 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 Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final String`
  `SNAPSHOT_FILE_EXTENSION`
  File extension for snapshot files

- ## Method Summary

  Modifier and Type
  Method
  Description
  `SnapshotOptions<K,V>`
  `createOptions()`
  Creates a `SnapshotOptions` object configured with default settings.
  `void`
  `load(File snapshot, SnapshotOptions.SnapshotFormat format)`
  Imports the snapshot file into the specified region.
  `void`
  `load(File snapshot, SnapshotOptions.SnapshotFormat format, SnapshotOptions<K,V> options)`
  Imports the snapshot file into the specified region by applying user-configured options.
  `void`
  `save(File snapshot, SnapshotOptions.SnapshotFormat format)`
  Exports the region data into the snapshot file.
  `void`
  `save(File snapshot, SnapshotOptions.SnapshotFormat format, SnapshotOptions<K,V> options)`
  Exports the region data into the snapshot file by applying user-configured options.

- ## Field Details

  - ### SNAPSHOT_FILE_EXTENSION

    static final String SNAPSHOT_FILE_EXTENSION
    File extension for snapshot files
    See Also:
      - Constant Field Values

- ## Method Details

  - ### 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(File snapshot, SnapshotOptions.SnapshotFormat format) throws IOException
    Exports the region data into the snapshot file.
    Parameters:
      `snapshot` - the snapshot file (must end in .gfd)
      `format` - the snapshot format
    Throws:
      `IOException` - error writing snapshot

  - ### save

    void save(File snapshot, SnapshotOptions.SnapshotFormat format, SnapshotOptions<K,V> options) throws 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:
      `IOException` - error writing snapshot

  - ### load

    void load(File snapshot, SnapshotOptions.SnapshotFormat format) throws IOException, 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 `Instantiator`s 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:
      `IOException` - Unable to import data
      `ClassNotFoundException` - Unable to import data

  - ### load

    void load(File snapshot, SnapshotOptions.SnapshotFormat format, SnapshotOptions<K,V> options) throws IOException, 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 `Instantiator`s 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:
      `IOException` - Unable to import data
      `ClassNotFoundException` - Unable to import data