org.apache.hadoop.hbase.master.snapshot
Class MasterSnapshotVerifier

java.lang.Object
  extended by org.apache.hadoop.hbase.master.snapshot.MasterSnapshotVerifier

@InterfaceAudience.Private
@InterfaceStability.Unstable
public final class MasterSnapshotVerifier
extends Object

General snapshot verification on the master.

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:

  1. SnapshotDescription is readable
  2. Table info is readable
  3. Regions


Constructor Summary
MasterSnapshotVerifier(MasterServices services, HBaseProtos.SnapshotDescription snapshot, org.apache.hadoop.fs.Path rootDir)
           
 
Method Summary
 void verifySnapshot(org.apache.hadoop.fs.Path snapshotDir, Set<String> snapshotServers)
          Verify that the snapshot in the directory is a valid snapshot
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MasterSnapshotVerifier

public MasterSnapshotVerifier(MasterServices services,
                              HBaseProtos.SnapshotDescription snapshot,
                              org.apache.hadoop.fs.Path rootDir)
Parameters:
services - services for the master
snapshot - snapshot to check
rootDir - root directory of the hbase installation.
Method Detail

verifySnapshot

public void verifySnapshot(org.apache.hadoop.fs.Path snapshotDir,
                           Set<String> snapshotServers)
                    throws CorruptedSnapshotException,
                           IOException
Verify that the snapshot in the directory is a valid snapshot

Parameters:
snapshotDir - snapshot directory to check
snapshotServers - ServerName of the servers that are involved in the snapshot
Throws:
CorruptedSnapshotException - if the snapshot is invalid
IOException - if there is an unexpected connection issue to the filesystem


Copyright © 2015 The Apache Software Foundation. All rights reserved.