@InterfaceAudience.Private public abstract class TakeSnapshotHandler extends EventHandler implements SnapshotSentinel, ForeignExceptionSnare
snapshotRegions(List)
call should get implemented for each snapshot flavor.EventHandler.EventHandlerListener, EventHandler.EventType
Modifier and Type | Field and Description |
---|---|
protected org.apache.hadoop.conf.Configuration |
conf |
protected org.apache.hadoop.fs.FileSystem |
fs |
protected MasterServices |
master |
protected MasterMetrics |
metricsMaster |
protected ForeignExceptionDispatcher |
monitor |
protected org.apache.hadoop.fs.Path |
rootDir |
protected HBaseProtos.SnapshotDescription |
snapshot |
protected MonitoredTask |
status |
protected org.apache.hadoop.fs.Path |
workingDir |
eventType, seqids, server, waitingTimeForEvents
Constructor and Description |
---|
TakeSnapshotHandler(HBaseProtos.SnapshotDescription snapshot,
MasterServices masterServices,
MasterMetrics metricsMaster) |
Modifier and Type | Method and Description |
---|---|
void |
cancel(String why)
Actively cancel a running snapshot.
|
void |
completeSnapshot(org.apache.hadoop.fs.Path snapshotDir,
org.apache.hadoop.fs.Path workingDir,
org.apache.hadoop.fs.FileSystem fs)
Reset the manager to allow another snapshot to proceed
|
long |
getCompletionTimestamp() |
ForeignException |
getException()
Get the value of the captured exception.
|
ForeignException |
getExceptionIfFailed()
Get the exception that caused the snapshot to fail, if the snapshot has failed.
|
HBaseProtos.SnapshotDescription |
getSnapshot() |
boolean |
hasException()
Non-exceptional form of
ForeignExceptionSnare.rethrowException() . |
boolean |
isFinished()
Check to see if the snapshot is finished, where finished may be success or failure.
|
TakeSnapshotHandler |
prepare() |
void |
process()
Execute the core common portions of taking a snapshot.
|
void |
rethrowException()
Rethrow an exception currently held by the
ForeignExceptionSnare . |
void |
rethrowExceptionIfFailed()
Rethrow the exception returned by
SnapshotSentinel.getExceptionIfFailed() . |
protected void |
snapshotDisabledRegion(HRegionInfo regionInfo)
Take a snapshot of the specified disabled region
|
protected abstract void |
snapshotRegions(List<Pair<HRegionInfo,ServerName>> regions)
Snapshot the specified regions
|
compareTo, getEventType, getInformativeName, getListener, getPriority, getSeqid, run, setListener, toString
protected final MasterServices master
protected final MasterMetrics metricsMaster
protected final HBaseProtos.SnapshotDescription snapshot
protected final org.apache.hadoop.conf.Configuration conf
protected final org.apache.hadoop.fs.FileSystem fs
protected final org.apache.hadoop.fs.Path rootDir
protected final org.apache.hadoop.fs.Path workingDir
protected final ForeignExceptionDispatcher monitor
protected final MonitoredTask status
public TakeSnapshotHandler(HBaseProtos.SnapshotDescription snapshot, MasterServices masterServices, MasterMetrics metricsMaster)
snapshot
- descriptor of the snapshot to takemasterServices
- master services providerIOException
- on unexpected errorpublic TakeSnapshotHandler prepare() throws Exception
Exception
public void process()
snapshotRegions(List)
call should get implemented for each snapshot flavor.process
in class EventHandler
public void completeSnapshot(org.apache.hadoop.fs.Path snapshotDir, org.apache.hadoop.fs.Path workingDir, org.apache.hadoop.fs.FileSystem fs) throws SnapshotCreationException, IOException
snapshotDir
- final path of the snapshotworkingDir
- directory where the in progress snapshot was builtfs
- FileSystem
where the snapshot was builtSnapshotCreationException
- if the snapshot could not be movedIOException
- the filesystem could not be reachedprotected void snapshotDisabledRegion(HRegionInfo regionInfo) throws IOException
IOException
protected abstract void snapshotRegions(List<Pair<HRegionInfo,ServerName>> regions) throws IOException, org.apache.zookeeper.KeeperException
IOException
org.apache.zookeeper.KeeperException
public void cancel(String why)
SnapshotSentinel
cancel
in interface SnapshotSentinel
why
- Reason for cancellation.public boolean isFinished()
SnapshotSentinel
isFinished
in interface SnapshotSentinel
public long getCompletionTimestamp()
getCompletionTimestamp
in interface SnapshotSentinel
public HBaseProtos.SnapshotDescription getSnapshot()
getSnapshot
in interface SnapshotSentinel
public ForeignException getExceptionIfFailed()
SnapshotSentinel
getExceptionIfFailed
in interface SnapshotSentinel
ForeignException
that caused the snapshot to fail, or null if the
snapshot is still in progress or has succeededpublic void rethrowExceptionIfFailed() throws ForeignException
SnapshotSentinel
SnapshotSentinel.getExceptionIfFailed()
.
If there is no exception this is a no-op.rethrowExceptionIfFailed
in interface SnapshotSentinel
ForeignException
- all exceptions from remote sources are procedure exceptionspublic void rethrowException() throws ForeignException
ForeignExceptionSnare
ForeignExceptionSnare
. If there is
no exception this is a no-oprethrowException
in interface ForeignExceptionSnare
ForeignException
- all exceptions from remote sources are procedure exceptionspublic boolean hasException()
ForeignExceptionSnare
ForeignExceptionSnare.rethrowException()
. Checks to see if any
process to which the exception checkers is bound has created an error that
would cause a failure.hasException
in interface ForeignExceptionSnare
public ForeignException getException()
ForeignExceptionSnare
getException
in interface ForeignExceptionSnare
Copyright © 2014 The Apache Software Foundation. All Rights Reserved.