blob: 0fd85af3049f3108c826ddcda92417c3387b3a87 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>SnapshotManager (Apache HBase 3.0.0-alpha-2-SNAPSHOT API)</title>
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="SnapshotManager (Apache HBase 3.0.0-alpha-2-SNAPSHOT API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/SnapshotManager.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../../org/apache/hadoop/hbase/master/snapshot/SnapshotHFileCleaner.html" title="class in org.apache.hadoop.hbase.master.snapshot"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../org/apache/hadoop/hbase/master/snapshot/TakeSnapshotHandler.html" title="class in org.apache.hadoop.hbase.master.snapshot"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html" target="_top">Frames</a></li>
<li><a href="SnapshotManager.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.hadoop.hbase.master.snapshot</div>
<h2 title="Class SnapshotManager" class="title">Class SnapshotManager</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li><a href="../../../../../../org/apache/hadoop/hbase/procedure/ProcedureManager.html" title="class in org.apache.hadoop.hbase.procedure">org.apache.hadoop.hbase.procedure.ProcedureManager</a></li>
<li>
<ul class="inheritance">
<li><a href="../../../../../../org/apache/hadoop/hbase/procedure/MasterProcedureManager.html" title="class in org.apache.hadoop.hbase.procedure">org.apache.hadoop.hbase.procedure.MasterProcedureManager</a></li>
<li>
<ul class="inheritance">
<li>org.apache.hadoop.hbase.master.snapshot.SnapshotManager</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="../../../../../../org/apache/hadoop/hbase/Stoppable.html" title="interface in org.apache.hadoop.hbase">Stoppable</a></dd>
</dl>
<hr>
<br>
<pre>@InterfaceAudience.LimitedPrivate(value="Configuration")
@InterfaceStability.Unstable
public class <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#line.114">SnapshotManager</a>
extends <a href="../../../../../../org/apache/hadoop/hbase/procedure/MasterProcedureManager.html" title="class in org.apache.hadoop.hbase.procedure">MasterProcedureManager</a>
implements <a href="../../../../../../org/apache/hadoop/hbase/Stoppable.html" title="interface in org.apache.hadoop.hbase">Stoppable</a></pre>
<div class="block">This class manages the procedure of taking and restoring snapshots. There is only one
SnapshotManager for the master.
<p>
The class provides methods for monitoring in-progress snapshot actions.
<p>
Note: Currently there can only be one snapshot being taken at a time over the cluster. This is a
simplification in the current implementation.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Field and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/hbase/procedure/ProcedureCoordinator.html" title="class in org.apache.hadoop.hbase.procedure">ProcedureCoordinator</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#coordinator">coordinator</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/hbase/executor/ExecutorService.html" title="class in org.apache.hadoop.hbase.executor">ExecutorService</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#executorService">executorService</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#HBASE_SNAPSHOT_ENABLED">HBASE_SNAPSHOT_ENABLED</a></span></code>
<div class="block">Enable or disable snapshot support</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#HBASE_SNAPSHOT_SENTINELS_CLEANUP_TIMEOUT_MILLIS">HBASE_SNAPSHOT_SENTINELS_CLEANUP_TIMEOUT_MILLIS</a></span></code>
<div class="block">Wait time before removing a finished sentinel from the in-progress map
NOTE: This is used as a safety auto cleanup.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#isSnapshotSupported">isSnapshotSupported</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private static org.slf4j.Logger</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#LOG">LOG</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#master">master</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#ONLINE_SNAPSHOT_CONTROLLER_DESCRIPTION">ONLINE_SNAPSHOT_CONTROLLER_DESCRIPTION</a></span></code>
<div class="block">Name of the operation to use in the controller</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#restoreTableToProcIdMap">restoreTableToProcIdMap</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private org.apache.hadoop.fs.Path</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#rootDir">rootDir</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ScheduledExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ScheduledExecutorService</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#scheduleThreadPool">scheduleThreadPool</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#SNAPSHOT_MAX_FILE_SIZE_PRESERVE">SNAPSHOT_MAX_FILE_SIZE_PRESERVE</a></span></code>
<div class="block">Conf key for preserving original max file size configs</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#SNAPSHOT_POOL_THREADS_DEFAULT">SNAPSHOT_POOL_THREADS_DEFAULT</a></span></code>
<div class="block">number of current operations running on the master</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#SNAPSHOT_POOL_THREADS_KEY">SNAPSHOT_POOL_THREADS_KEY</a></span></code>
<div class="block">Conf key for # of threads used by the SnapshotManager thread pool</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#SNAPSHOT_SENTINELS_CLEANUP_TIMEOUT_MILLS_DEFAULT">SNAPSHOT_SENTINELS_CLEANUP_TIMEOUT_MILLS_DEFAULT</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#SNAPSHOT_WAKE_MILLIS_DEFAULT">SNAPSHOT_WAKE_MILLIS_DEFAULT</a></span></code>
<div class="block">By default, check to see if the snapshot is complete every WAKE MILLIS (ms)</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#SNAPSHOT_WAKE_MILLIS_KEY">SNAPSHOT_WAKE_MILLIS_KEY</a></span></code>
<div class="block">Conf key for # of ms elapsed between checks for snapshot errors while waiting for
completion.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ScheduledFuture.html?is-external=true" title="class or interface in java.util.concurrent">ScheduledFuture</a>&lt;?&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#snapshotHandlerChoreCleanerTask">snapshotHandlerChoreCleanerTask</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>,<a href="../../../../../../org/apache/hadoop/hbase/master/SnapshotSentinel.html" title="interface in org.apache.hadoop.hbase.master">SnapshotSentinel</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#snapshotHandlers">snapshotHandlers</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#stopped">stopped</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/ReentrantReadWriteLock.html?is-external=true" title="class or interface in java.util.concurrent.locks">ReentrantReadWriteLock</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#takingSnapshotLock">takingSnapshotLock</a></span></code>
<div class="block">Read write lock between taking snapshot and snapshot HFile cleaner.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#SnapshotManager--">SnapshotManager</a></span>()</code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#SnapshotManager-org.apache.hadoop.hbase.master.MasterServices-org.apache.hadoop.hbase.procedure.ProcedureCoordinator-org.apache.hadoop.hbase.executor.ExecutorService-int-">SnapshotManager</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a>&nbsp;master,
<a href="../../../../../../org/apache/hadoop/hbase/procedure/ProcedureCoordinator.html" title="class in org.apache.hadoop.hbase.procedure">ProcedureCoordinator</a>&nbsp;coordinator,
<a href="../../../../../../org/apache/hadoop/hbase/executor/ExecutorService.html" title="class in org.apache.hadoop.hbase.executor">ExecutorService</a>&nbsp;pool,
int&nbsp;sentinelCleanInterval)</code>
<div class="block">Fully specify all necessary components of a snapshot manager.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#checkPermissions-org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.ProcedureDescription-org.apache.hadoop.hbase.security.access.AccessChecker-org.apache.hadoop.hbase.security.User-">checkPermissions</a></span>(org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.ProcedureDescription&nbsp;desc,
<a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessChecker.html" title="class in org.apache.hadoop.hbase.security.access">AccessChecker</a>&nbsp;accessChecker,
<a href="../../../../../../org/apache/hadoop/hbase/security/User.html" title="class in org.apache.hadoop.hbase.security">User</a>&nbsp;user)</code>
<div class="block">Check for required permissions before executing the procedure.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#checkSnapshotSupport--">checkSnapshotSupport</a></span>()</code>
<div class="block">Throws an exception if snapshot operations (take a snapshot, restore, clone) are not supported.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#checkSnapshotSupport-org.apache.hadoop.conf.Configuration-org.apache.hadoop.hbase.master.MasterFileSystem-">checkSnapshotSupport</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf,
<a href="../../../../../../org/apache/hadoop/hbase/master/MasterFileSystem.html" title="class in org.apache.hadoop.hbase.master">MasterFileSystem</a>&nbsp;mfs)</code>
<div class="block">Called at startup, to verify if snapshot operation is supported, and to avoid
starting the master if there're snapshots present but the cleaners needed are missing.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#cleanupCompletedRestoreInMap--">cleanupCompletedRestoreInMap</a></span>()</code>
<div class="block">Remove the procedures that are marked as finished</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#cleanupSentinels--">cleanupSentinels</a></span>()</code>
<div class="block">Removes "abandoned" snapshot/restore requests.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#cleanupSentinels-java.util.Map-">cleanupSentinels</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>,<a href="../../../../../../org/apache/hadoop/hbase/master/SnapshotSentinel.html" title="interface in org.apache.hadoop.hbase.master">SnapshotSentinel</a>&gt;&nbsp;sentinels)</code>
<div class="block">Remove the sentinels that are marked as finished and the completion time
has exceeded the removal timeout.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>(package private) long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#cloneSnapshot-org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-org.apache.hadoop.hbase.util.NonceKey-boolean-">cloneSnapshot</a></span>(org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription&nbsp;snapshot,
<a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;tableDescriptor,
<a href="../../../../../../org/apache/hadoop/hbase/util/NonceKey.html" title="class in org.apache.hadoop.hbase.util">NonceKey</a>&nbsp;nonceKey,
boolean&nbsp;restoreAcl)</code>
<div class="block">Clone the specified snapshot into a new table.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>private long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#cloneSnapshot-org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-org.apache.hadoop.hbase.util.NonceKey-boolean-">cloneSnapshot</a></span>(org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription&nbsp;reqSnapshot,
<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription&nbsp;snapshot,
<a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;snapshotTableDesc,
<a href="../../../../../../org/apache/hadoop/hbase/util/NonceKey.html" title="class in org.apache.hadoop.hbase.util">NonceKey</a>&nbsp;nonceKey,
boolean&nbsp;restoreAcl)</code>
<div class="block">Clone the specified snapshot.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#deleteSnapshot-org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription-">deleteSnapshot</a></span>(org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription&nbsp;snapshot)</code>
<div class="block">Delete the specified snapshot</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#execProcedure-org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.ProcedureDescription-">execProcedure</a></span>(org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.ProcedureDescription&nbsp;desc)</code>
<div class="block">Execute a distributed procedure on cluster</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#getCompletedSnapshots--">getCompletedSnapshots</a></span>()</code>
<div class="block">Gets the list of all completed snapshots.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>private <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#getCompletedSnapshots-org.apache.hadoop.fs.Path-boolean-">getCompletedSnapshots</a></span>(org.apache.hadoop.fs.Path&nbsp;snapshotDir,
boolean&nbsp;withCpCall)</code>
<div class="block">Gets the list of all completed snapshots.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>(package private) <a href="../../../../../../org/apache/hadoop/hbase/procedure/ProcedureCoordinator.html" title="class in org.apache.hadoop.hbase.procedure">ProcedureCoordinator</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#getCoordinator--">getCoordinator</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#getProcedureSignature--">getProcedureSignature</a></span>()</code>
<div class="block">Return the unique signature of the procedure.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/ReadWriteLock.html?is-external=true" title="class or interface in java.util.concurrent.locks">ReadWriteLock</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#getTakingSnapshotLock--">getTakingSnapshotLock</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#initialize-org.apache.hadoop.hbase.master.MasterServices-org.apache.hadoop.hbase.master.MetricsMaster-">initialize</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a>&nbsp;master,
<a href="../../../../../../org/apache/hadoop/hbase/master/MetricsMaster.html" title="class in org.apache.hadoop.hbase.master">MetricsMaster</a>&nbsp;metricsMaster)</code>
<div class="block">Initialize a globally barriered procedure for master.</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#isProcedureDone-org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.ProcedureDescription-">isProcedureDone</a></span>(org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.ProcedureDescription&nbsp;desc)</code>
<div class="block">Check if the procedure is finished successfully</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>private boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#isRestoringTable-org.apache.hadoop.hbase.TableName-">isRestoringTable</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
<div class="block">Verify if the restore of the specified table is in progress.</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>private boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#isSnapshotCompleted-org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription-">isSnapshotCompleted</a></span>(org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription&nbsp;snapshot)</code>
<div class="block">Check to see if the snapshot is one of the currently completed snapshots
Returns true if the snapshot exists in the "completed snapshots folder".</div>
</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#isSnapshotDone-org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription-">isSnapshotDone</a></span>(org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription&nbsp;expected)</code>
<div class="block">Check if the specified snapshot is done</div>
</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#isStopped--">isStopped</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#isTakingAnySnapshot--">isTakingAnySnapshot</a></span>()</code>
<div class="block">The snapshot operation processing as following: <br>
1.</div>
</td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code>(package private) boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#isTakingSnapshot-org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription-">isTakingSnapshot</a></span>(org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription&nbsp;snapshot)</code>
<div class="block">Check to see if there is a snapshot in progress with the same name or on the same table.</div>
</td>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#isTakingSnapshot-org.apache.hadoop.hbase.TableName-">isTakingSnapshot</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
<div class="block">Check to see if the specified table has a snapshot in progress.</div>
</td>
</tr>
<tr id="i24" class="altColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#prepareToTakeSnapshot-org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription-">prepareToTakeSnapshot</a></span>(org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription&nbsp;snapshot)</code>
<div class="block">Check to make sure that we are OK to run the passed snapshot.</div>
</td>
</tr>
<tr id="i25" class="rowColor">
<td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/hbase/master/SnapshotSentinel.html" title="interface in org.apache.hadoop.hbase.master">SnapshotSentinel</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#removeSentinelIfFinished-java.util.Map-org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription-">removeSentinelIfFinished</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>,<a href="../../../../../../org/apache/hadoop/hbase/master/SnapshotSentinel.html" title="interface in org.apache.hadoop.hbase.master">SnapshotSentinel</a>&gt;&nbsp;sentinels,
org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription&nbsp;snapshot)</code>
<div class="block">Return the handler if it is currently live and has the same snapshot target name.</div>
</td>
</tr>
<tr id="i26" class="altColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#resetTempDir--">resetTempDir</a></span>()</code>
<div class="block">Cleans up any snapshots in the snapshot/.tmp directory that were left from failed
snapshot attempts.</div>
</td>
</tr>
<tr id="i27" class="rowColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#restoreOrCloneSnapshot-org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription-org.apache.hadoop.hbase.util.NonceKey-boolean-">restoreOrCloneSnapshot</a></span>(org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription&nbsp;reqSnapshot,
<a href="../../../../../../org/apache/hadoop/hbase/util/NonceKey.html" title="class in org.apache.hadoop.hbase.util">NonceKey</a>&nbsp;nonceKey,
boolean&nbsp;restoreAcl)</code>
<div class="block">Restore or Clone the specified snapshot</div>
</td>
</tr>
<tr id="i28" class="altColor">
<td class="colFirst"><code>private long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#restoreSnapshot-org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-org.apache.hadoop.hbase.util.NonceKey-boolean-">restoreSnapshot</a></span>(org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription&nbsp;snapshot,
<a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;tableDescriptor,
<a href="../../../../../../org/apache/hadoop/hbase/util/NonceKey.html" title="class in org.apache.hadoop.hbase.util">NonceKey</a>&nbsp;nonceKey,
boolean&nbsp;restoreAcl)</code>
<div class="block">Restore the specified snapshot.</div>
</td>
</tr>
<tr id="i29" class="rowColor">
<td class="colFirst"><code>private long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#restoreSnapshot-org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-org.apache.hadoop.hbase.util.NonceKey-boolean-">restoreSnapshot</a></span>(org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription&nbsp;reqSnapshot,
<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription&nbsp;snapshot,
<a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;snapshotTableDesc,
<a href="../../../../../../org/apache/hadoop/hbase/util/NonceKey.html" title="class in org.apache.hadoop.hbase.util">NonceKey</a>&nbsp;nonceKey,
boolean&nbsp;restoreAcl)</code>
<div class="block">Restore the specified snapshot.</div>
</td>
</tr>
<tr id="i30" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#setSnapshotHandlerForTesting-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.master.SnapshotSentinel-">setSnapshotHandlerForTesting</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
<a href="../../../../../../org/apache/hadoop/hbase/master/SnapshotSentinel.html" title="interface in org.apache.hadoop.hbase.master">SnapshotSentinel</a>&nbsp;handler)</code>
<div class="block">Set the handler for the current snapshot</div>
</td>
</tr>
<tr id="i31" class="rowColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#snapshotDisabledTable-org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription-">snapshotDisabledTable</a></span>(org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription&nbsp;snapshot)</code>
<div class="block">Take a snapshot of a disabled table.</div>
</td>
</tr>
<tr id="i32" class="altColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#snapshotEnabledTable-org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription-">snapshotEnabledTable</a></span>(org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription&nbsp;snapshot)</code>
<div class="block">Take a snapshot of an enabled table.</div>
</td>
</tr>
<tr id="i33" class="rowColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#snapshotTable-org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription-org.apache.hadoop.hbase.master.snapshot.TakeSnapshotHandler-">snapshotTable</a></span>(org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription&nbsp;snapshot,
<a href="../../../../../../org/apache/hadoop/hbase/master/snapshot/TakeSnapshotHandler.html" title="class in org.apache.hadoop.hbase.master.snapshot">TakeSnapshotHandler</a>&nbsp;handler)</code>
<div class="block">Take a snapshot using the specified handler.</div>
</td>
</tr>
<tr id="i34" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#stop-java.lang.String-">stop</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;why)</code>
<div class="block">Stop this service.</div>
</td>
</tr>
<tr id="i35" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#takeSnapshot-org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription-">takeSnapshot</a></span>(org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription&nbsp;snapshot)</code>
<div class="block">Take a snapshot based on the enabled/disabled state of the table.</div>
</td>
</tr>
<tr id="i36" class="altColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#takeSnapshotInternal-org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription-">takeSnapshotInternal</a></span>(org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription&nbsp;snapshot)</code>&nbsp;</td>
</tr>
<tr id="i37" class="rowColor">
<td class="colFirst"><code>private org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#toSnapshotDescription-org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.ProcedureDescription-">toSnapshotDescription</a></span>(org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.ProcedureDescription&nbsp;desc)</code>&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.procedure.MasterProcedureManager">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure.<a href="../../../../../../org/apache/hadoop/hbase/procedure/MasterProcedureManager.html" title="class in org.apache.hadoop.hbase.procedure">MasterProcedureManager</a></h3>
<code><a href="../../../../../../org/apache/hadoop/hbase/procedure/MasterProcedureManager.html#execProcedureWithRet-org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.ProcedureDescription-">execProcedureWithRet</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.procedure.ProcedureManager">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.procedure.<a href="../../../../../../org/apache/hadoop/hbase/procedure/ProcedureManager.html" title="class in org.apache.hadoop.hbase.procedure">ProcedureManager</a></h3>
<code><a href="../../../../../../org/apache/hadoop/hbase/procedure/ProcedureManager.html#equals-java.lang.Object-">equals</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure/ProcedureManager.html#hashCode--">hashCode</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a name="LOG">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>LOG</h4>
<pre>private static final&nbsp;org.slf4j.Logger <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#line.115">LOG</a></pre>
</li>
</ul>
<a name="SNAPSHOT_WAKE_MILLIS_DEFAULT">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>SNAPSHOT_WAKE_MILLIS_DEFAULT</h4>
<pre>private static final&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#line.118">SNAPSHOT_WAKE_MILLIS_DEFAULT</a></pre>
<div class="block">By default, check to see if the snapshot is complete every WAKE MILLIS (ms)</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.master.snapshot.SnapshotManager.SNAPSHOT_WAKE_MILLIS_DEFAULT">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="HBASE_SNAPSHOT_SENTINELS_CLEANUP_TIMEOUT_MILLIS">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>HBASE_SNAPSHOT_SENTINELS_CLEANUP_TIMEOUT_MILLIS</h4>
<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#line.131">HBASE_SNAPSHOT_SENTINELS_CLEANUP_TIMEOUT_MILLIS</a></pre>
<div class="block">Wait time before removing a finished sentinel from the in-progress map
NOTE: This is used as a safety auto cleanup.
The snapshot and restore handlers map entries are removed when a user asks if a snapshot or
restore is completed. This operation is part of the HBaseAdmin snapshot/restore API flow.
In case something fails on the client side and the snapshot/restore state is not reclaimed
after a default timeout, the entry is removed from the in-progress map.
At this point, if the user asks for the snapshot/restore status, the result will be
snapshot done if exists or failed if it doesn't exists.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.master.snapshot.SnapshotManager.HBASE_SNAPSHOT_SENTINELS_CLEANUP_TIMEOUT_MILLIS">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="SNAPSHOT_SENTINELS_CLEANUP_TIMEOUT_MILLS_DEFAULT">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>SNAPSHOT_SENTINELS_CLEANUP_TIMEOUT_MILLS_DEFAULT</h4>
<pre>public static final&nbsp;long <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#line.133">SNAPSHOT_SENTINELS_CLEANUP_TIMEOUT_MILLS_DEFAULT</a></pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.master.snapshot.SnapshotManager.SNAPSHOT_SENTINELS_CLEANUP_TIMEOUT_MILLS_DEFAULT">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="HBASE_SNAPSHOT_ENABLED">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>HBASE_SNAPSHOT_ENABLED</h4>
<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#line.136">HBASE_SNAPSHOT_ENABLED</a></pre>
<div class="block">Enable or disable snapshot support</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.master.snapshot.SnapshotManager.HBASE_SNAPSHOT_ENABLED">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="SNAPSHOT_WAKE_MILLIS_KEY">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>SNAPSHOT_WAKE_MILLIS_KEY</h4>
<pre>private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#line.142">SNAPSHOT_WAKE_MILLIS_KEY</a></pre>
<div class="block">Conf key for # of ms elapsed between checks for snapshot errors while waiting for
completion.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.master.snapshot.SnapshotManager.SNAPSHOT_WAKE_MILLIS_KEY">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="ONLINE_SNAPSHOT_CONTROLLER_DESCRIPTION">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ONLINE_SNAPSHOT_CONTROLLER_DESCRIPTION</h4>
<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#line.145">ONLINE_SNAPSHOT_CONTROLLER_DESCRIPTION</a></pre>
<div class="block">Name of the operation to use in the controller</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.master.snapshot.SnapshotManager.ONLINE_SNAPSHOT_CONTROLLER_DESCRIPTION">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="SNAPSHOT_POOL_THREADS_KEY">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>SNAPSHOT_POOL_THREADS_KEY</h4>
<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#line.148">SNAPSHOT_POOL_THREADS_KEY</a></pre>
<div class="block">Conf key for # of threads used by the SnapshotManager thread pool</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.master.snapshot.SnapshotManager.SNAPSHOT_POOL_THREADS_KEY">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="SNAPSHOT_POOL_THREADS_DEFAULT">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>SNAPSHOT_POOL_THREADS_DEFAULT</h4>
<pre>public static final&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#line.151">SNAPSHOT_POOL_THREADS_DEFAULT</a></pre>
<div class="block">number of current operations running on the master</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.master.snapshot.SnapshotManager.SNAPSHOT_POOL_THREADS_DEFAULT">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="SNAPSHOT_MAX_FILE_SIZE_PRESERVE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>SNAPSHOT_MAX_FILE_SIZE_PRESERVE</h4>
<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#line.154">SNAPSHOT_MAX_FILE_SIZE_PRESERVE</a></pre>
<div class="block">Conf key for preserving original max file size configs</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.master.snapshot.SnapshotManager.SNAPSHOT_MAX_FILE_SIZE_PRESERVE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="stopped">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>stopped</h4>
<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#line.157">stopped</a></pre>
</li>
</ul>
<a name="master">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>master</h4>
<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#line.158">master</a></pre>
</li>
</ul>
<a name="coordinator">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>coordinator</h4>
<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/procedure/ProcedureCoordinator.html" title="class in org.apache.hadoop.hbase.procedure">ProcedureCoordinator</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#line.159">coordinator</a></pre>
</li>
</ul>
<a name="isSnapshotSupported">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isSnapshotSupported</h4>
<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#line.162">isSnapshotSupported</a></pre>
</li>
</ul>
<a name="snapshotHandlers">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>snapshotHandlers</h4>
<pre>private final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>,<a href="../../../../../../org/apache/hadoop/hbase/master/SnapshotSentinel.html" title="interface in org.apache.hadoop.hbase.master">SnapshotSentinel</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#line.168">snapshotHandlers</a></pre>
</li>
</ul>
<a name="scheduleThreadPool">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>scheduleThreadPool</h4>
<pre>private final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ScheduledExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ScheduledExecutorService</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#line.169">scheduleThreadPool</a></pre>
</li>
</ul>
<a name="snapshotHandlerChoreCleanerTask">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>snapshotHandlerChoreCleanerTask</h4>
<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ScheduledFuture.html?is-external=true" title="class or interface in java.util.concurrent">ScheduledFuture</a>&lt;?&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#line.172">snapshotHandlerChoreCleanerTask</a></pre>
</li>
</ul>
<a name="restoreTableToProcIdMap">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>restoreTableToProcIdMap</h4>
<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#line.181">restoreTableToProcIdMap</a></pre>
</li>
</ul>
<a name="rootDir">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>rootDir</h4>
<pre>private&nbsp;org.apache.hadoop.fs.Path <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#line.183">rootDir</a></pre>
</li>
</ul>
<a name="executorService">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>executorService</h4>
<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/executor/ExecutorService.html" title="class in org.apache.hadoop.hbase.executor">ExecutorService</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#line.184">executorService</a></pre>
</li>
</ul>
<a name="takingSnapshotLock">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>takingSnapshotLock</h4>
<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/ReentrantReadWriteLock.html?is-external=true" title="class or interface in java.util.concurrent.locks">ReentrantReadWriteLock</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#line.192">takingSnapshotLock</a></pre>
<div class="block">Read write lock between taking snapshot and snapshot HFile cleaner. The cleaner should skip to
check the HFiles if any snapshot is in progress, otherwise it may clean a HFile which would
belongs to the newly creating snapshot. So we should grab the write lock first when cleaner
start to work. (See HBASE-21387)</div>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="SnapshotManager--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>SnapshotManager</h4>
<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#line.194">SnapshotManager</a>()</pre>
</li>
</ul>
<a name="SnapshotManager-org.apache.hadoop.hbase.master.MasterServices-org.apache.hadoop.hbase.procedure.ProcedureCoordinator-org.apache.hadoop.hbase.executor.ExecutorService-int-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>SnapshotManager</h4>
<pre>@InterfaceAudience.Private
<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#line.203">SnapshotManager</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a>&nbsp;master,
<a href="../../../../../../org/apache/hadoop/hbase/procedure/ProcedureCoordinator.html" title="class in org.apache.hadoop.hbase.procedure">ProcedureCoordinator</a>&nbsp;coordinator,
<a href="../../../../../../org/apache/hadoop/hbase/executor/ExecutorService.html" title="class in org.apache.hadoop.hbase.executor">ExecutorService</a>&nbsp;pool,
int&nbsp;sentinelCleanInterval)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></pre>
<div class="block">Fully specify all necessary components of a snapshot manager. Exposed for testing.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>master</code> - services for the master where the manager is running</dd>
<dd><code>coordinator</code> - procedure coordinator instance. exposed for testing.</dd>
<dd><code>pool</code> - HBase ExecutorServcie instance, exposed for testing.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code></dd>
</dl>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="getCompletedSnapshots--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCompletedSnapshots</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#line.224">getCompletedSnapshots</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Gets the list of all completed snapshots.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>list of SnapshotDescriptions</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code> - File system exception</dd>
</dl>
</li>
</ul>
<a name="getCompletedSnapshots-org.apache.hadoop.fs.Path-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCompletedSnapshots</h4>
<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#line.235">getCompletedSnapshots</a>(org.apache.hadoop.fs.Path&nbsp;snapshotDir,
boolean&nbsp;withCpCall)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Gets the list of all completed snapshots.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>snapshotDir</code> - snapshot directory</dd>
<dd><code>withCpCall</code> - Whether to call CP hooks</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>list of SnapshotDescriptions</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code> - File system exception</dd>
</dl>
</li>
</ul>
<a name="resetTempDir--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>resetTempDir</h4>
<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#line.299">resetTempDir</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Cleans up any snapshots in the snapshot/.tmp directory that were left from failed
snapshot attempts.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code> - if we can't reach the filesystem</dd>
</dl>
</li>
</ul>
<a name="deleteSnapshot-org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>deleteSnapshot</h4>
<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#line.315">deleteSnapshot</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription&nbsp;snapshot)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Delete the specified snapshot</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>snapshot</code> - </dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../../org/apache/hadoop/hbase/snapshot/SnapshotDoesNotExistException.html" title="class in org.apache.hadoop.hbase.snapshot">SnapshotDoesNotExistException</a></code> - If the specified snapshot does not exist.</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code> - For filesystem IOExceptions</dd>
</dl>
</li>
</ul>
<a name="isSnapshotDone-org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isSnapshotDone</h4>
<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#line.358">isSnapshotDone</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription&nbsp;expected)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Check if the specified snapshot is done</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>expected</code> - </dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if snapshot is ready to be restored, false if it is still being taken.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code> - IOException if error from HDFS or RPC</dd>
<dd><code><a href="../../../../../../org/apache/hadoop/hbase/snapshot/UnknownSnapshotException.html" title="class in org.apache.hadoop.hbase.snapshot">UnknownSnapshotException</a></code> - if snapshot is invalid or does not exist.</dd>
</dl>
</li>
</ul>
<a name="isTakingSnapshot-org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isTakingSnapshot</h4>
<pre>boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#line.423">isTakingSnapshot</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription&nbsp;snapshot)</pre>
<div class="block">Check to see if there is a snapshot in progress with the same name or on the same table.
Currently we have a limitation only allowing a single snapshot per table at a time. Also we
don't allow snapshot with the same name.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>snapshot</code> - description of the snapshot being checked.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><tt>true</tt> if there is a snapshot in progress with the same name or on the same
table.</dd>
</dl>
</li>
</ul>
<a name="isTakingSnapshot-org.apache.hadoop.hbase.TableName-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isTakingSnapshot</h4>
<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#line.445">isTakingSnapshot</a>(<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</pre>
<div class="block">Check to see if the specified table has a snapshot in progress. Currently we have a
limitation only allowing a single snapshot per table at a time.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>tableName</code> - name of the table being snapshotted.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><tt>true</tt> if there is a snapshot in progress on the specified table.</dd>
</dl>
</li>
</ul>
<a name="prepareToTakeSnapshot-org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>prepareToTakeSnapshot</h4>
<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#line.456">prepareToTakeSnapshot</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription&nbsp;snapshot)
throws <a href="../../../../../../org/apache/hadoop/hbase/snapshot/HBaseSnapshotException.html" title="class in org.apache.hadoop.hbase.snapshot">HBaseSnapshotException</a></pre>
<div class="block">Check to make sure that we are OK to run the passed snapshot. Checks to make sure that we
aren't already running a snapshot or restore on the requested table.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>snapshot</code> - description of the snapshot we want to start</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../../org/apache/hadoop/hbase/snapshot/HBaseSnapshotException.html" title="class in org.apache.hadoop.hbase.snapshot">HBaseSnapshotException</a></code> - if the filesystem could not be prepared to start the snapshot</dd>
</dl>
</li>
</ul>
<a name="snapshotDisabledTable-org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>snapshotDisabledTable</h4>
<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#line.507">snapshotDisabledTable</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription&nbsp;snapshot)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Take a snapshot of a disabled table.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>snapshot</code> - description of the snapshot to take. Modified to be <code>SnapshotProtos.SnapshotDescription.Type.DISABLED</code>.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code> - if the snapshot could not be started or filesystem for snapshot
temporary directory could not be determined</dd>
</dl>
</li>
</ul>
<a name="snapshotEnabledTable-org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>snapshotEnabledTable</h4>
<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#line.527">snapshotEnabledTable</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription&nbsp;snapshot)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Take a snapshot of an enabled table.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>snapshot</code> - description of the snapshot to take.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code> - if the snapshot could not be started or filesystem for snapshot
temporary directory could not be determined</dd>
</dl>
</li>
</ul>
<a name="snapshotTable-org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription-org.apache.hadoop.hbase.master.snapshot.TakeSnapshotHandler-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>snapshotTable</h4>
<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#line.546">snapshotTable</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription&nbsp;snapshot,
<a href="../../../../../../org/apache/hadoop/hbase/master/snapshot/TakeSnapshotHandler.html" title="class in org.apache.hadoop.hbase.master.snapshot">TakeSnapshotHandler</a>&nbsp;handler)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Take a snapshot using the specified handler.
On failure the snapshot temporary working directory is removed.
NOTE: prepareToTakeSnapshot() called before this one takes care of the rejecting the
snapshot request if the table is busy with another snapshot/restore operation.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>snapshot</code> - the snapshot description</dd>
<dd><code>handler</code> - the snapshot handler</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
</dl>
</li>
</ul>
<a name="getTakingSnapshotLock--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTakingSnapshotLock</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/ReadWriteLock.html?is-external=true" title="class or interface in java.util.concurrent.locks">ReadWriteLock</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#line.572">getTakingSnapshotLock</a>()</pre>
</li>
</ul>
<a name="isTakingAnySnapshot--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isTakingAnySnapshot</h4>
<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#line.584">isTakingAnySnapshot</a>()</pre>
<div class="block">The snapshot operation processing as following: <br>
1. Create a Snapshot Handler, and do some initialization; <br>
2. Put the handler into snapshotHandlers <br>
So when we consider if any snapshot is taking, we should consider both the takingSnapshotLock
and snapshotHandlers;</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true to indicate that there're some running snapshots.</dd>
</dl>
</li>
</ul>
<a name="takeSnapshot-org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>takeSnapshot</h4>
<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#line.594">takeSnapshot</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription&nbsp;snapshot)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Take a snapshot based on the enabled/disabled state of the table.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>snapshot</code> - </dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../../org/apache/hadoop/hbase/snapshot/HBaseSnapshotException.html" title="class in org.apache.hadoop.hbase.snapshot">HBaseSnapshotException</a></code> - when a snapshot specific exception occurs.</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code> - when some sort of generic IO exception occurs.</dd>
</dl>
</li>
</ul>
<a name="takeSnapshotInternal-org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>takeSnapshotInternal</h4>
<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#line.603">takeSnapshotInternal</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription&nbsp;snapshot)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
</dl>
</li>
</ul>
<a name="setSnapshotHandlerForTesting-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.master.SnapshotSentinel-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setSnapshotHandlerForTesting</h4>
<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#line.703">setSnapshotHandlerForTesting</a>(<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
<a href="../../../../../../org/apache/hadoop/hbase/master/SnapshotSentinel.html" title="interface in org.apache.hadoop.hbase.master">SnapshotSentinel</a>&nbsp;handler)</pre>
<div class="block">Set the handler for the current snapshot
<p>
Exposed for TESTING</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>tableName</code> - </dd>
<dd><code>handler</code> - handler the master should use
TODO get rid of this if possible, repackaging, modify tests.</dd>
</dl>
</li>
</ul>
<a name="getCoordinator--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCoordinator</h4>
<pre><a href="../../../../../../org/apache/hadoop/hbase/procedure/ProcedureCoordinator.html" title="class in org.apache.hadoop.hbase.procedure">ProcedureCoordinator</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#line.716">getCoordinator</a>()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>distributed commit coordinator for all running snapshots</dd>
</dl>
</li>
</ul>
<a name="isSnapshotCompleted-org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isSnapshotCompleted</h4>
<pre>private&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#line.730">isSnapshotCompleted</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription&nbsp;snapshot)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Check to see if the snapshot is one of the currently completed snapshots
Returns true if the snapshot exists in the "completed snapshots folder".</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>snapshot</code> - expected snapshot to check</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><tt>true</tt> if the snapshot is stored on the <code>FileSystem</code>, <tt>false</tt> if is
not stored</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code> - if the filesystem throws an unexpected exception,</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if snapshot name is invalid.</dd>
</dl>
</li>
</ul>
<a name="cloneSnapshot-org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-org.apache.hadoop.hbase.util.NonceKey-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>cloneSnapshot</h4>
<pre>private&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#line.753">cloneSnapshot</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription&nbsp;reqSnapshot,
<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription&nbsp;snapshot,
<a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;snapshotTableDesc,
<a href="../../../../../../org/apache/hadoop/hbase/util/NonceKey.html" title="class in org.apache.hadoop.hbase.util">NonceKey</a>&nbsp;nonceKey,
boolean&nbsp;restoreAcl)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Clone the specified snapshot.
The clone will fail if the destination table has a snapshot or restore in progress.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>reqSnapshot</code> - Snapshot Descriptor from request</dd>
<dd><code>tableName</code> - table to clone</dd>
<dd><code>snapshot</code> - Snapshot Descriptor</dd>
<dd><code>snapshotTableDesc</code> - Table Descriptor</dd>
<dd><code>nonceKey</code> - unique identifier to prevent duplicated RPC</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>procId the ID of the clone snapshot procedure</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
</dl>
</li>
</ul>
<a name="cloneSnapshot-org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-org.apache.hadoop.hbase.util.NonceKey-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>cloneSnapshot</h4>
<pre>long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#line.788">cloneSnapshot</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription&nbsp;snapshot,
<a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;tableDescriptor,
<a href="../../../../../../org/apache/hadoop/hbase/util/NonceKey.html" title="class in org.apache.hadoop.hbase.util">NonceKey</a>&nbsp;nonceKey,
boolean&nbsp;restoreAcl)
throws <a href="../../../../../../org/apache/hadoop/hbase/snapshot/HBaseSnapshotException.html" title="class in org.apache.hadoop.hbase.snapshot">HBaseSnapshotException</a></pre>
<div class="block">Clone the specified snapshot into a new table.
The operation will fail if the destination table has a snapshot or restore in progress.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>snapshot</code> - Snapshot Descriptor</dd>
<dd><code>tableDescriptor</code> - Table Descriptor of the table to create</dd>
<dd><code>nonceKey</code> - unique identifier to prevent duplicated RPC</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>procId the ID of the clone snapshot procedure</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../../org/apache/hadoop/hbase/snapshot/HBaseSnapshotException.html" title="class in org.apache.hadoop.hbase.snapshot">HBaseSnapshotException</a></code></dd>
</dl>
</li>
</ul>
<a name="restoreOrCloneSnapshot-org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription-org.apache.hadoop.hbase.util.NonceKey-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>restoreOrCloneSnapshot</h4>
<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#line.824">restoreOrCloneSnapshot</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription&nbsp;reqSnapshot,
<a href="../../../../../../org/apache/hadoop/hbase/util/NonceKey.html" title="class in org.apache.hadoop.hbase.util">NonceKey</a>&nbsp;nonceKey,
boolean&nbsp;restoreAcl)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Restore or Clone the specified snapshot</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>reqSnapshot</code> - </dd>
<dd><code>nonceKey</code> - unique identifier to prevent duplicated RPC</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
</dl>
</li>
</ul>
<a name="restoreSnapshot-org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-org.apache.hadoop.hbase.util.NonceKey-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>restoreSnapshot</h4>
<pre>private&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#line.878">restoreSnapshot</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription&nbsp;reqSnapshot,
<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription&nbsp;snapshot,
<a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;snapshotTableDesc,
<a href="../../../../../../org/apache/hadoop/hbase/util/NonceKey.html" title="class in org.apache.hadoop.hbase.util">NonceKey</a>&nbsp;nonceKey,
boolean&nbsp;restoreAcl)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Restore the specified snapshot. The restore will fail if the destination table has a snapshot
or restore in progress.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>reqSnapshot</code> - Snapshot Descriptor from request</dd>
<dd><code>tableName</code> - table to restore</dd>
<dd><code>snapshot</code> - Snapshot Descriptor</dd>
<dd><code>snapshotTableDesc</code> - Table Descriptor</dd>
<dd><code>nonceKey</code> - unique identifier to prevent duplicated RPC</dd>
<dd><code>restoreAcl</code> - true to restore acl of snapshot</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>procId the ID of the restore snapshot procedure</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
</dl>
</li>
</ul>
<a name="restoreSnapshot-org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription-org.apache.hadoop.hbase.client.TableDescriptor-org.apache.hadoop.hbase.util.NonceKey-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>restoreSnapshot</h4>
<pre>private&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#line.923">restoreSnapshot</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription&nbsp;snapshot,
<a href="../../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;tableDescriptor,
<a href="../../../../../../org/apache/hadoop/hbase/util/NonceKey.html" title="class in org.apache.hadoop.hbase.util">NonceKey</a>&nbsp;nonceKey,
boolean&nbsp;restoreAcl)
throws <a href="../../../../../../org/apache/hadoop/hbase/snapshot/HBaseSnapshotException.html" title="class in org.apache.hadoop.hbase.snapshot">HBaseSnapshotException</a></pre>
<div class="block">Restore the specified snapshot. The restore will fail if the destination table has a snapshot
or restore in progress.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>snapshot</code> - Snapshot Descriptor</dd>
<dd><code>tableDescriptor</code> - Table Descriptor</dd>
<dd><code>nonceKey</code> - unique identifier to prevent duplicated RPC</dd>
<dd><code>restoreAcl</code> - true to restore acl of snapshot</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>procId the ID of the restore snapshot procedure</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../../org/apache/hadoop/hbase/snapshot/HBaseSnapshotException.html" title="class in org.apache.hadoop.hbase.snapshot">HBaseSnapshotException</a></code></dd>
</dl>
</li>
</ul>
<a name="isRestoringTable-org.apache.hadoop.hbase.TableName-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isRestoringTable</h4>
<pre>private&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#line.960">isRestoringTable</a>(<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</pre>
<div class="block">Verify if the restore of the specified table is in progress.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>tableName</code> - table under restore</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><tt>true</tt> if there is a restore in progress of the specified table.</dd>
</dl>
</li>
</ul>
<a name="removeSentinelIfFinished-java.util.Map-org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>removeSentinelIfFinished</h4>
<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/SnapshotSentinel.html" title="interface in org.apache.hadoop.hbase.master">SnapshotSentinel</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#line.981">removeSentinelIfFinished</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>,<a href="../../../../../../org/apache/hadoop/hbase/master/SnapshotSentinel.html" title="interface in org.apache.hadoop.hbase.master">SnapshotSentinel</a>&gt;&nbsp;sentinels,
org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription&nbsp;snapshot)</pre>
<div class="block">Return the handler if it is currently live and has the same snapshot target name.
The handler is removed from the sentinels map if completed.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>sentinels</code> - live handlers</dd>
<dd><code>snapshot</code> - snapshot description</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>null if doesn't match, else a live handler.</dd>
</dl>
</li>
</ul>
<a name="cleanupSentinels--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>cleanupSentinels</h4>
<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#line.1014">cleanupSentinels</a>()</pre>
<div class="block">Removes "abandoned" snapshot/restore requests.
As part of the HBaseAdmin snapshot/restore API the operation status is checked until completed,
and the in-progress maps are cleaned up when the status of a completed task is requested.
To avoid having sentinels staying around for long time if something client side is failed,
each operation tries to clean up the in-progress maps sentinels finished from a long time.</div>
</li>
</ul>
<a name="cleanupSentinels-java.util.Map-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>cleanupSentinels</h4>
<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#line.1024">cleanupSentinels</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>,<a href="../../../../../../org/apache/hadoop/hbase/master/SnapshotSentinel.html" title="interface in org.apache.hadoop.hbase.master">SnapshotSentinel</a>&gt;&nbsp;sentinels)</pre>
<div class="block">Remove the sentinels that are marked as finished and the completion time
has exceeded the removal timeout.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>sentinels</code> - map of sentinels to clean</dd>
</dl>
</li>
</ul>
<a name="cleanupCompletedRestoreInMap--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>cleanupCompletedRestoreInMap</h4>
<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#line.1043">cleanupCompletedRestoreInMap</a>()</pre>
<div class="block">Remove the procedures that are marked as finished</div>
</li>
</ul>
<a name="stop-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>stop</h4>
<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#line.1060">stop</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;why)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/Stoppable.html#stop-java.lang.String-">Stoppable</a></code></span></div>
<div class="block">Stop this service.
Implementers should favor logging errors over throwing RuntimeExceptions.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../org/apache/hadoop/hbase/Stoppable.html#stop-java.lang.String-">stop</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/Stoppable.html" title="interface in org.apache.hadoop.hbase">Stoppable</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>why</code> - Why we're stopping.</dd>
</dl>
</li>
</ul>
<a name="isStopped--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isStopped</h4>
<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#line.1082">isStopped</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../org/apache/hadoop/hbase/Stoppable.html#isStopped--">isStopped</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/Stoppable.html" title="interface in org.apache.hadoop.hbase">Stoppable</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>True if <a href="../../../../../../org/apache/hadoop/hbase/Stoppable.html#stop-java.lang.String-"><code>Stoppable.stop(String)</code></a> has been closed.</dd>
</dl>
</li>
</ul>
<a name="checkSnapshotSupport--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>checkSnapshotSupport</h4>
<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#line.1091">checkSnapshotSupport</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></pre>
<div class="block">Throws an exception if snapshot operations (take a snapshot, restore, clone) are not supported.
Called at the beginning of snapshot() and restoreSnapshot() methods.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code> - if snapshot are not supported</dd>
</dl>
</li>
</ul>
<a name="checkSnapshotSupport-org.apache.hadoop.conf.Configuration-org.apache.hadoop.hbase.master.MasterFileSystem-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>checkSnapshotSupport</h4>
<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#line.1109">checkSnapshotSupport</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
<a href="../../../../../../org/apache/hadoop/hbase/master/MasterFileSystem.html" title="class in org.apache.hadoop.hbase.master">MasterFileSystem</a>&nbsp;mfs)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></pre>
<div class="block">Called at startup, to verify if snapshot operation is supported, and to avoid
starting the master if there're snapshots present but the cleaners needed are missing.
Otherwise we can end up with snapshot data loss.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>conf</code> - The <code>Configuration</code> object to use</dd>
<dd><code>mfs</code> - The MasterFileSystem to use</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code> - in case of file-system operation failure</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code> - in case cleaners are missing and
there're snapshot in the system</dd>
</dl>
</li>
</ul>
<a name="initialize-org.apache.hadoop.hbase.master.MasterServices-org.apache.hadoop.hbase.master.MetricsMaster-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>initialize</h4>
<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#line.1185">initialize</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a>&nbsp;master,
<a href="../../../../../../org/apache/hadoop/hbase/master/MetricsMaster.html" title="class in org.apache.hadoop.hbase.master">MetricsMaster</a>&nbsp;metricsMaster)
throws org.apache.zookeeper.KeeperException,
<a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/procedure/MasterProcedureManager.html#initialize-org.apache.hadoop.hbase.master.MasterServices-org.apache.hadoop.hbase.master.MetricsMaster-">MasterProcedureManager</a></code></span></div>
<div class="block">Initialize a globally barriered procedure for master.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../org/apache/hadoop/hbase/procedure/MasterProcedureManager.html#initialize-org.apache.hadoop.hbase.master.MasterServices-org.apache.hadoop.hbase.master.MetricsMaster-">initialize</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/procedure/MasterProcedureManager.html" title="class in org.apache.hadoop.hbase.procedure">MasterProcedureManager</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>master</code> - Master service interface</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.apache.zookeeper.KeeperException</code></dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code></dd>
</dl>
</li>
</ul>
<a name="getProcedureSignature--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getProcedureSignature</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#line.1216">getProcedureSignature</a>()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/procedure/ProcedureManager.html#getProcedureSignature--">ProcedureManager</a></code></span></div>
<div class="block">Return the unique signature of the procedure. This signature uniquely
identifies the procedure. By default, this signature is the string used in
the procedure controller (i.e., the root ZK node name for the procedure)</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../org/apache/hadoop/hbase/procedure/ProcedureManager.html#getProcedureSignature--">getProcedureSignature</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/procedure/ProcedureManager.html" title="class in org.apache.hadoop.hbase.procedure">ProcedureManager</a></code></dd>
</dl>
</li>
</ul>
<a name="execProcedure-org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.ProcedureDescription-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>execProcedure</h4>
<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#line.1221">execProcedure</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.ProcedureDescription&nbsp;desc)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/procedure/MasterProcedureManager.html#execProcedure-org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.ProcedureDescription-">MasterProcedureManager</a></code></span></div>
<div class="block">Execute a distributed procedure on cluster</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../../../../org/apache/hadoop/hbase/procedure/MasterProcedureManager.html#execProcedure-org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.ProcedureDescription-">execProcedure</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/procedure/MasterProcedureManager.html" title="class in org.apache.hadoop.hbase.procedure">MasterProcedureManager</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>desc</code> - Procedure description</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
</dl>
</li>
</ul>
<a name="checkPermissions-org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.ProcedureDescription-org.apache.hadoop.hbase.security.access.AccessChecker-org.apache.hadoop.hbase.security.User-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>checkPermissions</h4>
<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#line.1226">checkPermissions</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.ProcedureDescription&nbsp;desc,
<a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessChecker.html" title="class in org.apache.hadoop.hbase.security.access">AccessChecker</a>&nbsp;accessChecker,
<a href="../../../../../../org/apache/hadoop/hbase/security/User.html" title="class in org.apache.hadoop.hbase.security">User</a>&nbsp;user)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/procedure/MasterProcedureManager.html#checkPermissions-org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.ProcedureDescription-org.apache.hadoop.hbase.security.access.AccessChecker-org.apache.hadoop.hbase.security.User-">MasterProcedureManager</a></code></span></div>
<div class="block">Check for required permissions before executing the procedure.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../org/apache/hadoop/hbase/procedure/MasterProcedureManager.html#checkPermissions-org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.ProcedureDescription-org.apache.hadoop.hbase.security.access.AccessChecker-org.apache.hadoop.hbase.security.User-">checkPermissions</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/procedure/MasterProcedureManager.html" title="class in org.apache.hadoop.hbase.procedure">MasterProcedureManager</a></code></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code> - if permissions requirements are not met.</dd>
</dl>
</li>
</ul>
<a name="isProcedureDone-org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.ProcedureDescription-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isProcedureDone</h4>
<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#line.1233">isProcedureDone</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.ProcedureDescription&nbsp;desc)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/procedure/MasterProcedureManager.html#isProcedureDone-org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.ProcedureDescription-">MasterProcedureManager</a></code></span></div>
<div class="block">Check if the procedure is finished successfully</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../org/apache/hadoop/hbase/procedure/MasterProcedureManager.html#isProcedureDone-org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.ProcedureDescription-">isProcedureDone</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/procedure/MasterProcedureManager.html" title="class in org.apache.hadoop.hbase.procedure">MasterProcedureManager</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>desc</code> - Procedure description</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if the specified procedure is finished successfully</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
</dl>
</li>
</ul>
<a name="toSnapshotDescription-org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.ProcedureDescription-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>toSnapshotDescription</h4>
<pre>private&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html#line.1237">toSnapshotDescription</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.ProcedureDescription&nbsp;desc)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/SnapshotManager.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../../org/apache/hadoop/hbase/master/snapshot/SnapshotHFileCleaner.html" title="class in org.apache.hadoop.hbase.master.snapshot"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../org/apache/hadoop/hbase/master/snapshot/TakeSnapshotHandler.html" title="class in org.apache.hadoop.hbase.master.snapshot"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html" target="_top">Frames</a></li>
<li><a href="SnapshotManager.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2021 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</body>
</html>