http://git-wip-us.apache.org/repos/asf/hbase-site/blob/804782f0/devapidocs/org/apache/hadoop/hbase/master/procedure/InitMetaProcedure.html
----------------------------------------------------------------------
diff --git
a/devapidocs/org/apache/hadoop/hbase/master/procedure/InitMetaProcedure.html
b/devapidocs/org/apache/hadoop/hbase/master/procedure/InitMetaProcedure.html
index 2f903de..a6743fd 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/procedure/InitMetaProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/procedure/InitMetaProcedure.html
@@ -18,7 +18,7 @@
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};
+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};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance
Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
@@ -295,6 +295,14 @@ extends <a
href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
persist (e.g.</div>
</td>
</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code>protected boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a
href="../../../../../../org/apache/hadoop/hbase/master/procedure/InitMetaProcedure.html#waitInitialized-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-">waitInitialized</a></span>(<a
href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html"
title="class in
org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a> env)</code>
+<div class="block">The <a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doAcquireLock-TEnvironment-org.apache.hadoop.hbase.procedure2.store.ProcedureStore-"><code>Procedure.doAcquireLock(Object,
ProcedureStore)</code></a> will be split into two steps, first, it will
+ call us to determine whether we need to wait for initialization, second, it
will call
+ <a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#acquireLock-TEnvironment-"><code>Procedure.acquireLock(Object)</code></a>
to actually handle the lock for this procedure.</div>
+</td>
+</tr>
</table>
<ul class="blockList">
<li class="blockList"><a
name="methods.inherited.from.class.org.apache.hadoop.hbase.master.procedure.AbstractStateMachineTableProcedure">
@@ -315,7 +323,7 @@ extends <a
href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
<!-- -->
</a>
<h3>Methods inherited from class org.apache.hadoop.hbase.procedure2.<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html"
title="class in org.apache.hadoop.hbase.procedure2">Procedure</a></h3>
-<code><a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doAcquireLock-TEnvironment-">doAcquireLock</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doReleaseLock-TEnvironment-">doReleaseLock</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</
a>, <a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">getProcedureMetrics</a>,
<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.htm
l#getProcId--">getProcId</a>, <a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">getProcName</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime<
/a>, <a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock-TEnvironment-">hasLock</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hb
ase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>,
<a href="../../../../../../or
g/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>,
<a href="../../../../../../org/apache/hadoop/hbase/procedure2/P
rocedure.html#setOwner-java.lang.String-">setOwner</a>, <a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>,
<a href="../../../../../../or
g/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>,
<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure
.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
+<code><a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a>,
<a href="../../../
../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getOwner--">getOwner</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">getProcedureMetrics</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcName--">get
ProcName</a>, <a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a>,
<a href="../.
./../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a>,
<a href="../../../../../../org/apache/hadoop/hbase/proc
edure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a>, <a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</a>,
<a href="../../../../.
./../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a>,
<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Proc
edure.html#setParentProcId-long-">setParentProcId</a>, <a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a>,
<a href="../../../../../../org/apache/hadoop/hbase/procedu
re2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a>, <a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--">toString</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClass--">toStringClass</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringDetails--">toStringDetails</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a>,
<a href="../../../../../../org/apache/
hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a>,
<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
@@ -437,35 +445,60 @@ extends <a
href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
</dl>
</li>
</ul>
+<a
name="waitInitialized-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>waitInitialized</h4>
+<pre>protected boolean <a
href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/InitMetaProcedure.html#line.66">waitInitialized</a>(<a
href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html"
title="class in
org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a> env)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from
class: <code><a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#waitInitialized-TEnvironment-">Procedure</a></code></span></div>
+<div class="block">The <a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doAcquireLock-TEnvironment-org.apache.hadoop.hbase.procedure2.store.ProcedureStore-"><code>Procedure.doAcquireLock(Object,
ProcedureStore)</code></a> will be split into two steps, first, it will
+ call us to determine whether we need to wait for initialization, second, it
will call
+ <a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#acquireLock-TEnvironment-"><code>Procedure.acquireLock(Object)</code></a>
to actually handle the lock for this procedure.
+ <p/>
+ This is because that when master restarts, we need to restore the lock state
for all the
+ procedures to not break the semantic if <a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-"><code>Procedure.holdLock(Object)</code></a>
is true. But the
+ <a
href="../../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html"
title="class in
org.apache.hadoop.hbase.procedure2"><code>ProcedureExecutor</code></a> will be
started before the master finish initialization(as it is part
+ of the initialization!), so we need to split the code into two steps, and
when restore, we just
+ restore the lock part and ignore the waitInitialized part. Otherwise there
will be dead lock.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a
href="../../../../../../org/apache/hadoop/hbase/master/procedure/AbstractStateMachineTableProcedure.html#waitInitialized-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-">waitInitialized</a></code> in
class <code><a
href="../../../../../../org/apache/hadoop/hbase/master/procedure/AbstractStateMachineTableProcedure.html"
title="class in
org.apache.hadoop.hbase.master.procedure">AbstractStateMachineTableProcedure</a><org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.InitMetaState></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true means we need to wait until the environment has been initialized,
otherwise true.</dd>
+</dl>
+</li>
+</ul>
<a
name="acquireLock-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>acquireLock</h4>
-<pre>protected <a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.LockState.html"
title="enum in
org.apache.hadoop.hbase.procedure2">Procedure.LockState</a> <a
href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/InitMetaProcedure.html#line.66">acquireLock</a>(<a
href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html"
title="class in
org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a> env)</pre>
+<pre>protected <a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.LockState.html"
title="enum in
org.apache.hadoop.hbase.procedure2">Procedure.LockState</a> <a
href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/InitMetaProcedure.html#line.72">acquireLock</a>(<a
href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html"
title="class in
org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a> env)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from
class: <code><a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#acquireLock-TEnvironment-">Procedure</a></code></span></div>
-<div class="block">The user should override this method if they need a lock on
an Entity.
- A lock can be anything, and it is up to the implementor. The Procedure
- Framework will call this method just before it invokes <a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#execute-TEnvironment-"><code>Procedure.execute(Object)</code></a>.
- It calls <a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#releaseLock-TEnvironment-"><code>Procedure.releaseLock(Object)</code></a>
after the call to execute.
-
- <p>If you need to hold the lock for the life of the Procedure -- i.e. you do
not
- want any other Procedure interfering while this Procedure is running, see
- <a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-"><code>Procedure.holdLock(Object)</code></a>.
-
- <p>Example: in our Master we can execute request in parallel for different
tables.
- We can create t1 and create t2 and these creates can be executed at the same
time.
- Anything else on t1/t2 is queued waiting that specific table create to happen.
-
- <p>There are 3 LockState:
- <ul><li>LOCK_ACQUIRED should be returned when the proc has the lock and the
proc is
- ready to execute.</li>
- <li>LOCK_YIELD_WAIT should be returned when the proc has not the lock and the
framework
- should take care of readding the procedure back to the runnable set for
retry</li>
- <li>LOCK_EVENT_WAIT should be returned when the proc has not the lock and
someone will
- take care of readding the procedure back to the runnable set when the lock is
available.
- </li></ul></div>
+<div class="block">The user should override this method if they need a lock on
an Entity. A lock can be anything,
+ and it is up to the implementor. The Procedure Framework will call this
method just before it
+ invokes <a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#execute-TEnvironment-"><code>Procedure.execute(Object)</code></a>.
It calls <a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#releaseLock-TEnvironment-"><code>Procedure.releaseLock(Object)</code></a>
after the call to
+ execute.
+ <p/>
+ If you need to hold the lock for the life of the Procedure -- i.e. you do not
want any other
+ Procedure interfering while this Procedure is running, see <a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-"><code>Procedure.holdLock(Object)</code></a>.
+ <p/>
+ Example: in our Master we can execute request in parallel for different
tables. We can create
+ t1 and create t2 and these creates can be executed at the same time. Anything
else on t1/t2 is
+ queued waiting that specific table create to happen.
+ <p/>
+ There are 3 LockState:
+ <ul>
+ <li>LOCK_ACQUIRED should be returned when the proc has the lock and the proc
is ready to
+ execute.</li>
+ <li>LOCK_YIELD_WAIT should be returned when the proc has not the lock and the
framework should
+ take care of readding the procedure back to the runnable set for retry</li>
+ <li>LOCK_EVENT_WAIT should be returned when the proc has not the lock and
someone will take
+ care of readding the procedure back to the runnable set when the lock is
available.</li>
+ </ul></div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a
href="../../../../../../org/apache/hadoop/hbase/master/procedure/AbstractStateMachineTableProcedure.html#acquireLock-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-">acquireLock</a></code> in
class <code><a
href="../../../../../../org/apache/hadoop/hbase/master/procedure/AbstractStateMachineTableProcedure.html"
title="class in
org.apache.hadoop.hbase.master.procedure">AbstractStateMachineTableProcedure</a><org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.InitMetaState></code></dd>
@@ -480,7 +513,7 @@ extends <a
href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
<ul class="blockList">
<li class="blockList">
<h4>rollbackState</h4>
-<pre>protected void <a
href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/InitMetaProcedure.html#line.75">rollbackState</a>(<a
href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html"
title="class in
org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a> env,
+<pre>protected void <a
href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/InitMetaProcedure.html#line.80">rollbackState</a>(<a
href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html"
title="class in
org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a> env,
org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.InitMetaState state)
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/InterruptedException.html?is-external=true"
title="class or interface in java.lang">InterruptedException</a></pre>
@@ -502,7 +535,7 @@ extends <a
href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
<ul class="blockList">
<li class="blockList">
<h4>getState</h4>
-<pre>protected org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.InitMetaState <a
href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/InitMetaProcedure.html#line.81">getState</a>(int stateId)</pre>
+<pre>protected org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.InitMetaState <a
href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/InitMetaProcedure.html#line.86">getState</a>(int stateId)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from
class: <code><a
href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getState-int-">StateMachineProcedure</a></code></span></div>
<div class="block">Convert an ordinal (or state id) to an Enum (or more
descriptive) state object.</div>
<dl>
@@ -521,7 +554,7 @@ extends <a
href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
<ul class="blockList">
<li class="blockList">
<h4>getStateId</h4>
-<pre>protected int <a
href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/InitMetaProcedure.html#line.86">getStateId</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.InitMetaState state)</pre>
+<pre>protected int <a
href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/InitMetaProcedure.html#line.91">getStateId</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.InitMetaState state)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from
class: <code><a
href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getStateId-TState-">StateMachineProcedure</a></code></span></div>
<div class="block">Convert the Enum (or more descriptive) state object to an
ordinal (or state id).</div>
<dl>
@@ -540,7 +573,7 @@ extends <a
href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
<ul class="blockList">
<li class="blockList">
<h4>getInitialState</h4>
-<pre>protected org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.InitMetaState <a
href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/InitMetaProcedure.html#line.91">getInitialState</a>()</pre>
+<pre>protected org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.InitMetaState <a
href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/InitMetaProcedure.html#line.96">getInitialState</a>()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from
class: <code><a
href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getInitialState--">StateMachineProcedure</a></code></span></div>
<div class="block">Return the initial state object that will be used for the
first call to executeFromState().</div>
<dl>
@@ -557,7 +590,7 @@ extends <a
href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
<ul class="blockList">
<li class="blockList">
<h4>serializeStateData</h4>
-<pre>protected void <a
href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/InitMetaProcedure.html#line.96">serializeStateData</a>(<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/ProcedureStateSerializer.html"
title="interface in
org.apache.hadoop.hbase.procedure2">ProcedureStateSerializer</a> serializer)
+<pre>protected void <a
href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/InitMetaProcedure.html#line.101">serializeStateData</a>(<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/ProcedureStateSerializer.html"
title="interface in
org.apache.hadoop.hbase.procedure2">ProcedureStateSerializer</a> serializer)
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: <code><a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#serializeStateData-org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer-">Procedure</a></code></span></div>
<div class="block">The user-level code of the procedure may have some state to
@@ -579,7 +612,7 @@ extends <a
href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
<ul class="blockList">
<li class="blockList">
<h4>deserializeStateData</h4>
-<pre>protected void <a
href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/InitMetaProcedure.html#line.102">deserializeStateData</a>(<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/ProcedureStateSerializer.html"
title="interface in
org.apache.hadoop.hbase.procedure2">ProcedureStateSerializer</a> serializer)
+<pre>protected void <a
href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/InitMetaProcedure.html#line.107">deserializeStateData</a>(<a
href="../../../../../../org/apache/hadoop/hbase/procedure2/ProcedureStateSerializer.html"
title="interface in
org.apache.hadoop.hbase.procedure2">ProcedureStateSerializer</a> serializer)
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: <code><a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#deserializeStateData-org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer-">Procedure</a></code></span></div>
<div class="block">Called on store load to allow the user to decode the
previously serialized
@@ -600,7 +633,7 @@ extends <a
href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
<ul class="blockList">
<li class="blockList">
<h4>completionCleanup</h4>
-<pre>protected void <a
href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/InitMetaProcedure.html#line.108">completionCleanup</a>(<a
href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html"
title="class in
org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a> env)</pre>
+<pre>protected void <a
href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/InitMetaProcedure.html#line.113">completionCleanup</a>(<a
href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html"
title="class in
org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a> env)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from
class: <code><a
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">Procedure</a></code></span></div>
<div class="block">Called when the procedure is marked as completed (success
or rollback).
The procedure implementor may use this method to cleanup in-memory states.
@@ -618,7 +651,7 @@ extends <a
href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
<ul class="blockListLast">
<li class="blockList">
<h4>await</h4>
-<pre>public void <a
href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/InitMetaProcedure.html#line.112">await</a>()
+<pre>public void <a
href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/InitMetaProcedure.html#line.117">await</a>()
throws <a
href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true"
title="class or interface in java.lang">InterruptedException</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>