Package org.apache.geode.cache.snapshot
Interface RegionSnapshotService<K,V>
- Type Parameters:
K- the cache entry key typeV- 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:
-
Field Summary
Fields -
Method Summary
Modifier and TypeMethodDescriptionCreates aSnapshotOptionsobject configured with default settings.voidload(File snapshot, SnapshotOptions.SnapshotFormat format) Imports the snapshot file into the specified region.voidload(File snapshot, SnapshotOptions.SnapshotFormat format, SnapshotOptions<K, V> options) Imports the snapshot file into the specified region by applying user-configured options.voidsave(File snapshot, SnapshotOptions.SnapshotFormat format) Exports the region data into the snapshot file.voidsave(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
File extension for snapshot files- See Also:
-
-
Method Details
-
createOptions
SnapshotOptions<K,V> createOptions()Creates aSnapshotOptionsobject configured with default settings. The options can be used to configure snapshot behavior.- Returns:
- the default options
-
save
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 IOExceptionExports the region data into the snapshot file by applying user-configured options.- Parameters:
snapshot- the snapshot file (must end in .gfd)format- the snapshot formatoptions- 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
DataSerializerorPdxSerializer) andInstantiators should have been registered.- Parameters:
snapshot- the snapshot file (ending in .gfd) or a directory of .gfd snapshot filesformat- the snapshot file format- Throws:
IOException- Unable to import dataClassNotFoundException- Unable to import data
-
load
void load(File snapshot, SnapshotOptions.SnapshotFormat format, SnapshotOptions<K, V> options) throws IOException, ClassNotFoundExceptionImports 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
DataSerializerorPdxSerializer) andInstantiators should have been registered.- Parameters:
snapshot- the snapshot file (ending in .gfd) or a directory of .gfd snapshot filesformat- the snapshot file formatoptions- the snapshot options- Throws:
IOException- Unable to import dataClassNotFoundException- Unable to import data
-