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>&nbsp;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&nbsp;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&nbsp;boolean&nbsp;<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>&nbsp;env)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from 
class:&nbsp;<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>&nbsp;in
 class&nbsp;<code><a 
href="../../../../../../org/apache/hadoop/hbase/master/procedure/AbstractStateMachineTableProcedure.html"
 title="class in 
org.apache.hadoop.hbase.master.procedure">AbstractStateMachineTableProcedure</a>&lt;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.InitMetaState&gt;</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&nbsp;<a 
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.LockState.html"
 title="enum in 
org.apache.hadoop.hbase.procedure2">Procedure.LockState</a>&nbsp;<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>&nbsp;env)</pre>
+<pre>protected&nbsp;<a 
href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.LockState.html"
 title="enum in 
org.apache.hadoop.hbase.procedure2">Procedure.LockState</a>&nbsp;<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>&nbsp;env)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from 
class:&nbsp;<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>&nbsp;in
 class&nbsp;<code><a 
href="../../../../../../org/apache/hadoop/hbase/master/procedure/AbstractStateMachineTableProcedure.html"
 title="class in 
org.apache.hadoop.hbase.master.procedure">AbstractStateMachineTableProcedure</a>&lt;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.InitMetaState&gt;</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&nbsp;void&nbsp;<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>&nbsp;env,
+<pre>protected&nbsp;void&nbsp;<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>&nbsp;env,
                              
org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.InitMetaState&nbsp;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&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.InitMetaState&nbsp;<a
 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/InitMetaProcedure.html#line.81">getState</a>(int&nbsp;stateId)</pre>
+<pre>protected&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.InitMetaState&nbsp;<a
 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/InitMetaProcedure.html#line.86">getState</a>(int&nbsp;stateId)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from 
class:&nbsp;<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&nbsp;int&nbsp;<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&nbsp;state)</pre>
+<pre>protected&nbsp;int&nbsp;<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&nbsp;state)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from 
class:&nbsp;<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&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.InitMetaState&nbsp;<a
 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/InitMetaProcedure.html#line.91">getInitialState</a>()</pre>
+<pre>protected&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.InitMetaState&nbsp;<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:&nbsp;<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&nbsp;void&nbsp;<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>&nbsp;serializer)
+<pre>protected&nbsp;void&nbsp;<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>&nbsp;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:&nbsp;<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&nbsp;void&nbsp;<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>&nbsp;serializer)
+<pre>protected&nbsp;void&nbsp;<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>&nbsp;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:&nbsp;<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&nbsp;void&nbsp;<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>&nbsp;env)</pre>
+<pre>protected&nbsp;void&nbsp;<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>&nbsp;env)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from 
class:&nbsp;<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&nbsp;void&nbsp;<a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/procedure/InitMetaProcedure.html#line.112">await</a>()
+<pre>public&nbsp;void&nbsp;<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>

Reply via email to