@InterfaceAudience.Private @InterfaceStability.Unstable public final class MasterSnapshotVerifier extends Object
This is a light-weight verification mechanism for all the files in a snapshot. It doesn't attempt to verify that the files are exact copies (that would be paramount to taking the snapshot again!), but instead just attempts to ensure that the files match the expected files and are the same length.
Taking an online snapshots can race against other operations and this is an last line of defense. For example, if meta changes between when snapshots are taken not all regions of a table may be present. This can be caused by a region split (daughters present on this scan, but snapshot took parent), or move (snapshots only checks lists of region servers, a move could have caused a region to be skipped or done twice).
Current snapshot files checked:
HRegionInfo
matches the current and stored regionsConstructor and Description |
---|
MasterSnapshotVerifier(MasterServices services,
org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription snapshot,
org.apache.hadoop.fs.FileSystem workingDirFs) |
Modifier and Type | Method and Description |
---|---|
void |
verifySnapshot(org.apache.hadoop.fs.Path snapshotDir,
Set<String> snapshotServers)
Verify that the snapshot in the directory is a valid snapshot
|
public MasterSnapshotVerifier(MasterServices services, org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription snapshot, org.apache.hadoop.fs.FileSystem workingDirFs)
services
- services for the mastersnapshot
- snapshot to checkworkingDirFs
- the file system containing the temporary snapshot informationpublic void verifySnapshot(org.apache.hadoop.fs.Path snapshotDir, Set<String> snapshotServers) throws CorruptedSnapshotException, IOException
snapshotDir
- snapshot directory to checksnapshotServers
- ServerName
of the servers that are involved in the snapshotCorruptedSnapshotException
- if the snapshot is invalidIOException
- if there is an unexpected connection issue to the filesystemCopyright © 2007–2019 The Apache Software Foundation. All rights reserved.