| <!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>Procedure (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="Procedure (Apache HBase 3.0.0-alpha-2-SNAPSHOT API)"; |
| } |
| } |
| catch(err) { |
| } |
| //--> |
| var methods = {"i0":6,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":6,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":6,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":9,"i25":10,"i26":10,"i27":9,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10,"i40":9,"i41":10,"i42":10,"i43":10,"i44":10,"i45":10,"i46":10,"i47":10,"i48":10,"i49":10,"i50":10,"i51":10,"i52":10,"i53":10,"i54":10,"i55":10,"i56":10,"i57":10,"i58":6,"i59":6,"i60":10,"i61":10,"i62":10,"i63":10,"i64":10,"i65":10,"i66":10,"i67":10,"i68":10,"i69":10,"i70":10,"i71":10,"i72":10,"i73":10,"i74":10,"i75":10,"i76":10,"i77":10,"i78":10,"i79":10,"i80":10,"i81":10,"i82":10,"i83":10,"i84":10,"i85":10,"i86":10,"i87":10,"i88":10,"i89":10,"i90":10}; |
| var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],4:["t3","Abstract 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/Procedure.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/procedure2/OnePhaseProcedure.html" title="class in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">Prev Class</span></a></li> |
| <li><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.LockState.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">Next Class</span></a></li> |
| </ul> |
| <ul class="navList"> |
| <li><a href="../../../../../index.html?org/apache/hadoop/hbase/procedure2/Procedure.html" target="_top">Frames</a></li> |
| <li><a href="Procedure.html" target="_top">No Frames</a></li> |
| </ul> |
| <ul class="navList" id="allclasses_navbar_top"> |
| <li><a href="../../../../../allclasses-noframe.html">All 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: </li> |
| <li><a href="#nested.class.summary">Nested</a> | </li> |
| <li><a href="#field.summary">Field</a> | </li> |
| <li><a href="#constructor.summary">Constr</a> | </li> |
| <li><a href="#method.summary">Method</a></li> |
| </ul> |
| <ul class="subNavList"> |
| <li>Detail: </li> |
| <li><a href="#field.detail">Field</a> | </li> |
| <li><a href="#constructor.detail">Constr</a> | </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.procedure2</div> |
| <h2 title="Class Procedure" class="title">Class Procedure<TEnvironment></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>org.apache.hadoop.hbase.procedure2.Procedure<TEnvironment></li> |
| </ul> |
| </li> |
| </ul> |
| <div class="description"> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <dl> |
| <dt>All Implemented Interfaces:</dt> |
| <dd><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a><TEnvironment>></dd> |
| </dl> |
| <dl> |
| <dt>Direct Known Subclasses:</dt> |
| <dd><a href="../../../../../org/apache/hadoop/hbase/master/replication/ClaimReplicationQueuesProcedure.html" title="class in org.apache.hadoop.hbase.master.replication">ClaimReplicationQueuesProcedure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/FailedProcedure.html" title="class in org.apache.hadoop.hbase.procedure2">FailedProcedure</a>, <a href="../../../../../org/apache/hadoop/hbase/master/locking/LockProcedure.html" title="class in org.apache.hadoop.hbase.master.locking">LockProcedure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/OnePhaseProcedure.html" title="class in org.apache.hadoop.hbase.procedure2">OnePhaseProcedure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureInMemoryChore.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureInMemoryChore</a>, <a href="../../../../../org/apache/hadoop/hbase/master/assignment/RegionRemoteProcedureBase.html" title="class in org.apache.hadoop.hbase.master.assignment">RegionRemoteProcedureBase</a>, <a href="../../../../../org/apache/hadoop/hbase/master/assignment/RegionTransitionProcedure.html" title="class in org.apache.hadoop.hbase.master.assignment">RegionTransitionProcedure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/SequentialProcedure.html" title="class in org.apache.hadoop.hbase.procedure2">SequentialProcedure</a>, <a href="../../../../../org/apache/hadoop/hbase/master/procedure/ServerRemoteProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">ServerRemoteProcedure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html" title="class in org.apache.hadoop.hbase.procedure2">StateMachineProcedure</a>, <a href="../../../../../org/apache/hadoop/hbase/procedure2/TwoPhaseProcedure.html" title="class in org.apache.hadoop.hbase.procedure2">TwoPhaseProcedure</a></dd> |
| </dl> |
| <hr> |
| <br> |
| <pre>@InterfaceAudience.Private |
| public abstract class <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.110">Procedure</a><TEnvironment> |
| extends <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> |
| implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a><TEnvironment>></pre> |
| <div class="block">Base Procedure class responsible for Procedure Metadata; e.g. state, submittedTime, lastUpdate, |
| stack-indexes, etc. |
| <p/> |
| Procedures are run by a <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="class in org.apache.hadoop.hbase.procedure2"><code>ProcedureExecutor</code></a> instance. They are submitted and then the |
| ProcedureExecutor keeps calling <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#execute-TEnvironment-"><code>execute(Object)</code></a> until the Procedure is done. Execute may |
| be called multiple times in the case of failure or a restart, so code must be idempotent. The |
| return from an execute call is either: null to indicate we are done; ourself if there is more to |
| do; or, a set of sub-procedures that need to be run to completion before the framework resumes |
| our execution. |
| <p/> |
| The ProcedureExecutor keeps its notion of Procedure State in the Procedure itself; e.g. it stamps |
| the Procedure as INITIALIZING, RUNNABLE, SUCCESS, etc. Here are some of the States defined in the |
| ProcedureState enum from protos: |
| <ul> |
| <li><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--"><code>isFailed()</code></a> A procedure has executed at least once and has failed. The procedure may |
| or may not have rolled back yet. Any procedure in FAILED state will be eventually moved to |
| ROLLEDBACK state.</li> |
| <li><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--"><code>isSuccess()</code></a> A procedure is completed successfully without exception.</li> |
| <li><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--"><code>isFinished()</code></a> As a procedure in FAILED state will be tried forever for rollback, only |
| condition when scheduler/ executor will drop procedure from further processing is when procedure |
| state is ROLLEDBACK or isSuccess() returns true. This is a terminal state of the procedure.</li> |
| <li><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--"><code>isWaiting()</code></a> - Procedure is in one of the two waiting states |
| (<code>ProcedureProtos.ProcedureState.WAITING</code>, <code>ProcedureProtos.ProcedureState.WAITING_TIMEOUT</code>).</li> |
| </ul> |
| NOTE: These states are of the ProcedureExecutor. Procedure implementations in turn can keep their |
| own state. This can lead to confusion. Try to keep the two distinct. |
| <p/> |
| rollback() is called when the procedure or one of the sub-procedures has failed. The rollback |
| step is supposed to cleanup the resources created during the execute() step. In case of failure |
| and restart, rollback() may be called multiple times, so again the code must be idempotent. |
| <p/> |
| Procedure can be made respect a locking regime. It has acquire/release methods as well as an |
| <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--"><code>hasLock()</code></a>. The lock implementation is up to the implementor. If an entity needs to be |
| locked for the life of a procedure -- not just the calls to execute -- then implementations |
| should say so with the <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-"><code>holdLock(Object)</code></a> method. |
| <p/> |
| And since we need to restore the lock when restarting to keep the logic correct(HBASE-20846), the |
| implementation is a bit tricky so we add some comments hrre about it. |
| <ul> |
| <li>Make <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--"><code>hasLock()</code></a> method final, and add a <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#locked"><code>locked</code></a> field in Procedure to record |
| whether we have the lock. We will set it to <code>true</code> in |
| <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doAcquireLock-TEnvironment-org.apache.hadoop.hbase.procedure2.store.ProcedureStore-"><code>doAcquireLock(Object, ProcedureStore)</code></a> and to <code>false</code> in |
| <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doReleaseLock-TEnvironment-org.apache.hadoop.hbase.procedure2.store.ProcedureStore-"><code>doReleaseLock(Object, ProcedureStore)</code></a>. The sub classes do not need to manage it any |
| more.</li> |
| <li>Also added a locked field in the proto message. When storing, the field will be set according |
| to the return value of <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--"><code>hasLock()</code></a>. And when loading, there is a new field in Procedure |
| called <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#lockedWhenLoading"><code>lockedWhenLoading</code></a>. We will set it to <code>true</code> if the locked field in proto |
| message is <code>true</code>.</li> |
| <li>The reason why we can not set the <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#locked"><code>locked</code></a> field directly to <code>true</code> by calling |
| <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doAcquireLock-TEnvironment-org.apache.hadoop.hbase.procedure2.store.ProcedureStore-"><code>doAcquireLock(Object, ProcedureStore)</code></a> is that, during initialization, most procedures |
| need to wait until master is initialized. So the solution here is that, we introduced a new |
| method called <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#waitInitialized-TEnvironment-"><code>waitInitialized(Object)</code></a> in Procedure, and move the wait master initialized |
| related code from <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#acquireLock-TEnvironment-"><code>acquireLock(Object)</code></a> to this method. And we added a restoreLock method |
| to Procedure, if <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#lockedWhenLoading"><code>lockedWhenLoading</code></a> is <code>true</code>, we will call the |
| <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#acquireLock-TEnvironment-"><code>acquireLock(Object)</code></a> to get the lock, but do not set <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#locked"><code>locked</code></a> to true. And later |
| when we call <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doAcquireLock-TEnvironment-org.apache.hadoop.hbase.procedure2.store.ProcedureStore-"><code>doAcquireLock(Object, ProcedureStore)</code></a> and pass the |
| <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#waitInitialized-TEnvironment-"><code>waitInitialized(Object)</code></a> check, we will test <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#lockedWhenLoading"><code>lockedWhenLoading</code></a>, if it is |
| <code>true</code>, when we just set the <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#locked"><code>locked</code></a> field to true and return, without actually |
| calling the <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#acquireLock-TEnvironment-"><code>acquireLock(Object)</code></a> method since we have already called it once.</li> |
| </ul> |
| <p/> |
| Procedures can be suspended or put in wait state with a callback that gets executed on |
| Procedure-specified timeout. See <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-"><code>setTimeout(int)</code></a>}, and |
| <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-"><code>setTimeoutFailure(Object)</code></a>. See TestProcedureEvents and the TestTimeoutEventProcedure |
| class for an example usage. |
| </p> |
| <p/> |
| There are hooks for collecting metrics on submit of the procedure and on finish. See |
| <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-"><code>updateMetricsOnSubmit(Object)</code></a> and <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-"><code>updateMetricsOnFinish(Object, long, boolean)</code></a>.</div> |
| </li> |
| </ul> |
| </div> |
| <div class="summary"> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <!-- ======== NESTED CLASS SUMMARY ======== --> |
| <ul class="blockList"> |
| <li class="blockList"><a name="nested.class.summary"> |
| <!-- --> |
| </a> |
| <h3>Nested Class Summary</h3> |
| <table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation"> |
| <caption><span>Nested Classes</span><span class="tabEnd"> </span></caption> |
| <tr> |
| <th class="colFirst" scope="col">Modifier and Type</th> |
| <th class="colLast" scope="col">Class and Description</th> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><code>static class </code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.LockState.html" title="enum in org.apache.hadoop.hbase.procedure2">Procedure.LockState</a></span></code> </td> |
| </tr> |
| </table> |
| </li> |
| </ul> |
| <!-- =========== 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"> </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 boolean</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#bypass">bypass</a></span></code> |
| <div class="block">Used for override complete of the procedure without actually doing any logic in the procedure.</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><code>private int</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#childrenLatch">childrenLatch</a></span></code> </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/procedure2/RemoteProcedureException.html" title="class in org.apache.hadoop.hbase.procedure2">RemoteProcedureException</a></code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#exception">exception</a></span></code> </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><code>private long</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#lastUpdate">lastUpdate</a></span></code> </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/procedure2/Procedure.html#locked">locked</a></span></code> </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/procedure2/Procedure.html#lockedWhenLoading">lockedWhenLoading</a></span></code> </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><code>private static org.slf4j.Logger</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#LOG">LOG</a></span></code> </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><code>static long</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#NO_PROC_ID">NO_PROC_ID</a></span></code> </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><code>protected static int</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#NO_TIMEOUT">NO_TIMEOUT</a></span></code> </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/util/NonceKey.html" title="class in org.apache.hadoop.hbase.util">NonceKey</a></code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#nonceKey">nonceKey</a></span></code> </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><code>private <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/procedure2/Procedure.html#owner">owner</a></span></code> </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><code>private long</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#parentProcId">parentProcId</a></span></code> </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/procedure2/Procedure.html#persist">persist</a></span></code> |
| <div class="block">Indicate whether we need to persist the procedure to ProcedureStore after execution.</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><code>private long</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#procId">procId</a></span></code> </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><code>private byte[]</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#result">result</a></span></code> </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><code>private long</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#rootProcId">rootProcId</a></span></code> </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><code>private int[]</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#stackIndexes">stackIndexes</a></span></code> </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><code>private org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#state">state</a></span></code> </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><code>private long</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#submittedTime">submittedTime</a></span></code> </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><code>private int</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#timeout">timeout</a></span></code> </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"> </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/procedure2/Procedure.html#Procedure--">Procedure</a></span>()</code> </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"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </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>protected abstract boolean</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#abort-TEnvironment-">abort</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a> env)</code> |
| <div class="block">The abort() call is asynchronous and each procedure must decide how to deal |
| with it, if they want to be abortable.</div> |
| </td> |
| </tr> |
| <tr id="i1" class="rowColor"> |
| <td class="colFirst"><code>protected <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.LockState.html" title="enum in org.apache.hadoop.hbase.procedure2">Procedure.LockState</a></code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#acquireLock-TEnvironment-">acquireLock</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a> env)</code> |
| <div class="block">The user should override this method if they need a lock on an Entity.</div> |
| </td> |
| </tr> |
| <tr id="i2" class="altColor"> |
| <td class="colFirst"><code>protected void</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#addStackIndex-int-">addStackIndex</a></span>(int index)</code> |
| <div class="block">Called by the RootProcedureState on procedure execution.</div> |
| </td> |
| </tr> |
| <tr id="i3" class="rowColor"> |
| <td class="colFirst"><code>protected void</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#afterReplay-TEnvironment-">afterReplay</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a> env)</code> |
| <div class="block">Called when the procedure is ready to be added to the queue after |
| the loading/replay operation.</div> |
| </td> |
| </tr> |
| <tr id="i4" class="altColor"> |
| <td class="colFirst"><code>protected void</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#beforeReplay-TEnvironment-">beforeReplay</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a> env)</code> |
| <div class="block">Called when the procedure is loaded for replay.</div> |
| </td> |
| </tr> |
| <tr id="i5" class="rowColor"> |
| <td class="colFirst"><code>protected void</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#bypass-TEnvironment-">bypass</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a> env)</code> |
| <div class="block">Set the bypass to true.</div> |
| </td> |
| </tr> |
| <tr id="i6" class="altColor"> |
| <td class="colFirst"><code>private boolean</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#childrenCountDown--">childrenCountDown</a></span>()</code> |
| <div class="block">Called by the ProcedureExecutor to notify that one of the sub-procedures has completed.</div> |
| </td> |
| </tr> |
| <tr id="i7" class="rowColor"> |
| <td class="colFirst"><code>int</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#compareTo-org.apache.hadoop.hbase.procedure2.Procedure-">compareTo</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a><<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a>> other)</code> </td> |
| </tr> |
| <tr id="i8" class="altColor"> |
| <td class="colFirst"><code>protected void</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#completionCleanup-TEnvironment-">completionCleanup</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a> env)</code> |
| <div class="block">Called when the procedure is marked as completed (success or rollback).</div> |
| </td> |
| </tr> |
| <tr id="i9" class="rowColor"> |
| <td class="colFirst"><code>protected abstract void</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#deserializeStateData-org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer-">deserializeStateData</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureStateSerializer.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureStateSerializer</a> serializer)</code> |
| <div class="block">Called on store load to allow the user to decode the previously serialized |
| state.</div> |
| </td> |
| </tr> |
| <tr id="i10" class="altColor"> |
| <td class="colFirst"><code>(package private) <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.LockState.html" title="enum in org.apache.hadoop.hbase.procedure2">Procedure.LockState</a></code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doAcquireLock-TEnvironment-org.apache.hadoop.hbase.procedure2.store.ProcedureStore-">doAcquireLock</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a> env, |
| <a href="../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStore.html" title="interface in org.apache.hadoop.hbase.procedure2.store">ProcedureStore</a> store)</code> |
| <div class="block">Internal method called by the ProcedureExecutor that starts the user-level code acquireLock().</div> |
| </td> |
| </tr> |
| <tr id="i11" class="rowColor"> |
| <td class="colFirst"><code>protected <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a><<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a>>[]</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-">doExecute</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a> env)</code> |
| <div class="block">Internal method called by the ProcedureExecutor that starts the user-level code execute().</div> |
| </td> |
| </tr> |
| <tr id="i12" class="altColor"> |
| <td class="colFirst"><code>(package private) void</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doReleaseLock-TEnvironment-org.apache.hadoop.hbase.procedure2.store.ProcedureStore-">doReleaseLock</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a> env, |
| <a href="../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStore.html" title="interface in org.apache.hadoop.hbase.procedure2.store">ProcedureStore</a> store)</code> |
| <div class="block">Internal method called by the ProcedureExecutor that starts the user-level code releaseLock().</div> |
| </td> |
| </tr> |
| <tr id="i13" class="rowColor"> |
| <td class="colFirst"><code>protected void</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doRollback-TEnvironment-">doRollback</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a> env)</code> |
| <div class="block">Internal method called by the ProcedureExecutor that starts the user-level code rollback().</div> |
| </td> |
| </tr> |
| <tr id="i14" class="altColor"> |
| <td class="colFirst"><code>long</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#elapsedTime--">elapsedTime</a></span>()</code> </td> |
| </tr> |
| <tr id="i15" class="rowColor"> |
| <td class="colFirst"><code>protected abstract <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a><<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a>>[]</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#execute-TEnvironment-">execute</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a> env)</code> |
| <div class="block">The main code of the procedure.</div> |
| </td> |
| </tr> |
| <tr id="i16" class="altColor"> |
| <td class="colFirst"><code>protected int</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getChildrenLatch--">getChildrenLatch</a></span>()</code> </td> |
| </tr> |
| <tr id="i17" class="rowColor"> |
| <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/procedure2/RemoteProcedureException.html" title="class in org.apache.hadoop.hbase.procedure2">RemoteProcedureException</a></code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getException--">getException</a></span>()</code> </td> |
| </tr> |
| <tr id="i18" class="altColor"> |
| <td class="colFirst"><code>long</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getLastUpdate--">getLastUpdate</a></span>()</code> </td> |
| </tr> |
| <tr id="i19" class="rowColor"> |
| <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/util/NonceKey.html" title="class in org.apache.hadoop.hbase.util">NonceKey</a></code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getNonceKey--">getNonceKey</a></span>()</code> </td> |
| </tr> |
| <tr id="i20" class="altColor"> |
| <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/procedure2/Procedure.html#getOwner--">getOwner</a></span>()</code> </td> |
| </tr> |
| <tr id="i21" class="rowColor"> |
| <td class="colFirst"><code>long</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getParentProcId--">getParentProcId</a></span>()</code> </td> |
| </tr> |
| <tr id="i22" class="altColor"> |
| <td class="colFirst"><code>protected <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureMetrics.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureMetrics</a></code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">getProcedureMetrics</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a> env)</code> |
| <div class="block">Override this method to provide procedure specific counters for submitted count, failed |
| count and time histogram.</div> |
| </td> |
| </tr> |
| <tr id="i23" class="rowColor"> |
| <td class="colFirst"><code>long</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcId--">getProcId</a></span>()</code> </td> |
| </tr> |
| <tr id="i24" class="altColor"> |
| <td class="colFirst"><code>static long</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcIdHashCode-long-">getProcIdHashCode</a></span>(long procId)</code> |
| <div class="block">Get an hashcode for the specified Procedure ID</div> |
| </td> |
| </tr> |
| <tr id="i25" 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/procedure2/Procedure.html#getProcName--">getProcName</a></span>()</code> </td> |
| </tr> |
| <tr id="i26" class="altColor"> |
| <td class="colFirst"><code>byte[]</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getResult--">getResult</a></span>()</code> </td> |
| </tr> |
| <tr id="i27" class="rowColor"> |
| <td class="colFirst"><code>protected static <T> <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></code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-">getRootProcedureId</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><<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>,<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a><T>> procedures, |
| <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a><T> proc)</code> |
| <div class="block">Helper to lookup the root Procedure ID given a specified procedure.</div> |
| </td> |
| </tr> |
| <tr id="i28" class="altColor"> |
| <td class="colFirst"><code>long</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getRootProcId--">getRootProcId</a></span>()</code> </td> |
| </tr> |
| <tr id="i29" class="rowColor"> |
| <td class="colFirst"><code>protected int[]</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getStackIndexes--">getStackIndexes</a></span>()</code> </td> |
| </tr> |
| <tr id="i30" class="altColor"> |
| <td class="colFirst"><code>org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getState--">getState</a></span>()</code> </td> |
| </tr> |
| <tr id="i31" class="rowColor"> |
| <td class="colFirst"><code>long</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getSubmittedTime--">getSubmittedTime</a></span>()</code> </td> |
| </tr> |
| <tr id="i32" class="altColor"> |
| <td class="colFirst"><code>int</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeout--">getTimeout</a></span>()</code> </td> |
| </tr> |
| <tr id="i33" class="rowColor"> |
| <td class="colFirst"><code>protected long</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getTimeoutTimestamp--">getTimeoutTimestamp</a></span>()</code> |
| <div class="block">Timeout of the next timeout.</div> |
| </td> |
| </tr> |
| <tr id="i34" class="altColor"> |
| <td class="colFirst"><code>protected boolean</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasChildren--">hasChildren</a></span>()</code> </td> |
| </tr> |
| <tr id="i35" class="rowColor"> |
| <td class="colFirst"><code>boolean</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasException--">hasException</a></span>()</code> </td> |
| </tr> |
| <tr id="i36" class="altColor"> |
| <td class="colFirst"><code>boolean</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasLock--">hasLock</a></span>()</code> |
| <div class="block">This is used in conjunction with <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-"><code>holdLock(Object)</code></a>.</div> |
| </td> |
| </tr> |
| <tr id="i37" class="rowColor"> |
| <td class="colFirst"><code>boolean</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasOwner--">hasOwner</a></span>()</code> </td> |
| </tr> |
| <tr id="i38" class="altColor"> |
| <td class="colFirst"><code>boolean</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasParent--">hasParent</a></span>()</code> </td> |
| </tr> |
| <tr id="i39" class="rowColor"> |
| <td class="colFirst"><code>boolean</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#hasTimeout--">hasTimeout</a></span>()</code> </td> |
| </tr> |
| <tr id="i40" class="altColor"> |
| <td class="colFirst"><code>static boolean</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-">haveSameParent</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a><?> a, |
| <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a><?> b)</code> </td> |
| </tr> |
| <tr id="i41" class="rowColor"> |
| <td class="colFirst"><code>protected boolean</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-">holdLock</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a> env)</code> |
| <div class="block">Used to keep the procedure lock even when the procedure is yielding or suspended.</div> |
| </td> |
| </tr> |
| <tr id="i42" class="altColor"> |
| <td class="colFirst"><code>protected void</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#incChildrenLatch--">incChildrenLatch</a></span>()</code> |
| <div class="block">Called by the ProcedureExecutor on procedure-load to restore the latch state</div> |
| </td> |
| </tr> |
| <tr id="i43" class="rowColor"> |
| <td class="colFirst"><code>boolean</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isBypass--">isBypass</a></span>()</code> </td> |
| </tr> |
| <tr id="i44" class="altColor"> |
| <td class="colFirst"><code>boolean</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFailed--">isFailed</a></span>()</code> </td> |
| </tr> |
| <tr id="i45" class="rowColor"> |
| <td class="colFirst"><code>boolean</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isFinished--">isFinished</a></span>()</code> </td> |
| </tr> |
| <tr id="i46" class="altColor"> |
| <td class="colFirst"><code>boolean</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isInitializing--">isInitializing</a></span>()</code> </td> |
| </tr> |
| <tr id="i47" class="rowColor"> |
| <td class="colFirst"><code>boolean</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isLockedWhenLoading--">isLockedWhenLoading</a></span>()</code> |
| <div class="block">Can only be called when restarting, before the procedure actually being executed, as after we |
| actually call the <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doAcquireLock-TEnvironment-org.apache.hadoop.hbase.procedure2.store.ProcedureStore-"><code>doAcquireLock(Object, ProcedureStore)</code></a> method, we will reset |
| <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#lockedWhenLoading"><code>lockedWhenLoading</code></a> to false.</div> |
| </td> |
| </tr> |
| <tr id="i48" class="altColor"> |
| <td class="colFirst"><code>boolean</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isRunnable--">isRunnable</a></span>()</code> </td> |
| </tr> |
| <tr id="i49" class="rowColor"> |
| <td class="colFirst"><code>boolean</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isSuccess--">isSuccess</a></span>()</code> </td> |
| </tr> |
| <tr id="i50" class="altColor"> |
| <td class="colFirst"><code>boolean</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isWaiting--">isWaiting</a></span>()</code> </td> |
| </tr> |
| <tr id="i51" class="rowColor"> |
| <td class="colFirst"><code>protected boolean</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#isYieldAfterExecutionStep-TEnvironment-">isYieldAfterExecutionStep</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a> env)</code> |
| <div class="block">By default, the procedure framework/executor will try to run procedures start to finish.</div> |
| </td> |
| </tr> |
| <tr id="i52" class="altColor"> |
| <td class="colFirst"><code>(package private) void</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#lockedWhenLoading--">lockedWhenLoading</a></span>()</code> |
| <div class="block">Will only be called when loading procedures from procedure store, where we need to record |
| whether the procedure has already held a lock.</div> |
| </td> |
| </tr> |
| <tr id="i53" class="rowColor"> |
| <td class="colFirst"><code>(package private) boolean</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#needPersistence--">needPersistence</a></span>()</code> </td> |
| </tr> |
| <tr id="i54" class="altColor"> |
| <td class="colFirst"><code>protected void</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#releaseLock-TEnvironment-">releaseLock</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a> env)</code> |
| <div class="block">The user should override this method, and release lock if necessary.</div> |
| </td> |
| </tr> |
| <tr id="i55" class="rowColor"> |
| <td class="colFirst"><code>protected boolean</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#removeStackIndex--">removeStackIndex</a></span>()</code> </td> |
| </tr> |
| <tr id="i56" class="altColor"> |
| <td class="colFirst"><code>(package private) void</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#resetPersistence--">resetPersistence</a></span>()</code> </td> |
| </tr> |
| <tr id="i57" class="rowColor"> |
| <td class="colFirst"><code>(package private) void</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#restoreLock-TEnvironment-">restoreLock</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a> env)</code> </td> |
| </tr> |
| <tr id="i58" class="altColor"> |
| <td class="colFirst"><code>protected abstract void</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#rollback-TEnvironment-">rollback</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a> env)</code> |
| <div class="block">The code to undo what was done by the execute() code.</div> |
| </td> |
| </tr> |
| <tr id="i59" class="rowColor"> |
| <td class="colFirst"><code>protected abstract void</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#serializeStateData-org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer-">serializeStateData</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureStateSerializer.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureStateSerializer</a> serializer)</code> |
| <div class="block">The user-level code of the procedure may have some state to |
| persist (e.g.</div> |
| </td> |
| </tr> |
| <tr id="i60" class="altColor"> |
| <td class="colFirst"><code>protected void</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setAbortFailure-java.lang.String-java.lang.String-">setAbortFailure</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> source, |
| <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> msg)</code> </td> |
| </tr> |
| <tr id="i61" class="rowColor"> |
| <td class="colFirst"><code>protected void</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setChildrenLatch-int-">setChildrenLatch</a></span>(int numChildren)</code> |
| <div class="block">Called by the ProcedureExecutor on procedure-load to restore the latch state</div> |
| </td> |
| </tr> |
| <tr id="i62" class="altColor"> |
| <td class="colFirst"><code>protected void</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-">setFailure</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/RemoteProcedureException.html" title="class in org.apache.hadoop.hbase.procedure2">RemoteProcedureException</a> exception)</code> </td> |
| </tr> |
| <tr id="i63" class="rowColor"> |
| <td class="colFirst"><code>protected void</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setFailure-java.lang.String-java.lang.Throwable-">setFailure</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> source, |
| <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a> cause)</code> </td> |
| </tr> |
| <tr id="i64" class="altColor"> |
| <td class="colFirst"><code>protected void</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setLastUpdate-long-">setLastUpdate</a></span>(long lastUpdate)</code> |
| <div class="block">Called on store load to initialize the Procedure internals after |
| the creation/deserialization.</div> |
| </td> |
| </tr> |
| <tr id="i65" class="rowColor"> |
| <td class="colFirst"><code>protected void</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setNonceKey-org.apache.hadoop.hbase.util.NonceKey-">setNonceKey</a></span>(<a href="../../../../../org/apache/hadoop/hbase/util/NonceKey.html" title="class in org.apache.hadoop.hbase.util">NonceKey</a> nonceKey)</code> |
| <div class="block">Called by the ProcedureExecutor to set the value to the newly created procedure.</div> |
| </td> |
| </tr> |
| <tr id="i66" class="altColor"> |
| <td class="colFirst"><code>void</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-java.lang.String-">setOwner</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> owner)</code> </td> |
| </tr> |
| <tr id="i67" class="rowColor"> |
| <td class="colFirst"><code>void</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setOwner-org.apache.hadoop.hbase.security.User-">setOwner</a></span>(<a href="../../../../../org/apache/hadoop/hbase/security/User.html" title="class in org.apache.hadoop.hbase.security">User</a> owner)</code> </td> |
| </tr> |
| <tr id="i68" class="altColor"> |
| <td class="colFirst"><code>protected void</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setParentProcId-long-">setParentProcId</a></span>(long parentProcId)</code> |
| <div class="block">Called by the ProcedureExecutor to assign the parent to the newly created procedure.</div> |
| </td> |
| </tr> |
| <tr id="i69" class="rowColor"> |
| <td class="colFirst"><code>protected void</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setProcId-long-">setProcId</a></span>(long procId)</code> |
| <div class="block">Called by the ProcedureExecutor to assign the ID to the newly created procedure.</div> |
| </td> |
| </tr> |
| <tr id="i70" class="altColor"> |
| <td class="colFirst"><code>protected void</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setResult-byte:A-">setResult</a></span>(byte[] result)</code> |
| <div class="block">The procedure may leave a "result" on completion.</div> |
| </td> |
| </tr> |
| <tr id="i71" class="rowColor"> |
| <td class="colFirst"><code>protected void</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setRootProcId-long-">setRootProcId</a></span>(long rootProcId)</code> </td> |
| </tr> |
| <tr id="i72" class="altColor"> |
| <td class="colFirst"><code>protected void</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setStackIndexes-java.util.List-">setStackIndexes</a></span>(<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><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>> stackIndexes)</code> |
| <div class="block">Called on store load to initialize the Procedure internals after |
| the creation/deserialization.</div> |
| </td> |
| </tr> |
| <tr id="i73" class="rowColor"> |
| <td class="colFirst"><code>protected void</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-">setState</a></span>(org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState state)</code> </td> |
| </tr> |
| <tr id="i74" class="altColor"> |
| <td class="colFirst"><code>protected void</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setSubmittedTime-long-">setSubmittedTime</a></span>(long submittedTime)</code> |
| <div class="block">Called on store load to initialize the Procedure internals after |
| the creation/deserialization.</div> |
| </td> |
| </tr> |
| <tr id="i75" class="rowColor"> |
| <td class="colFirst"><code>protected void</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-">setTimeout</a></span>(int timeout)</code> </td> |
| </tr> |
| <tr id="i76" class="altColor"> |
| <td class="colFirst"><code>protected boolean</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeoutFailure-TEnvironment-">setTimeoutFailure</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a> env)</code> |
| <div class="block">Called by the ProcedureExecutor when the timeout set by setTimeout() is expired.</div> |
| </td> |
| </tr> |
| <tr id="i77" class="rowColor"> |
| <td class="colFirst"><code>protected boolean</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#shouldWaitClientAck-TEnvironment-">shouldWaitClientAck</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a> env)</code> |
| <div class="block">By default, the executor will keep the procedure result around util |
| the eviction TTL is expired.</div> |
| </td> |
| </tr> |
| <tr id="i78" class="altColor"> |
| <td class="colFirst"><code>protected void</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#skipPersistence--">skipPersistence</a></span>()</code> </td> |
| </tr> |
| <tr id="i79" 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/procedure2/Procedure.html#toString--">toString</a></span>()</code> </td> |
| </tr> |
| <tr id="i80" class="altColor"> |
| <td class="colFirst"><code>protected <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/procedure2/Procedure.html#toStringClass--">toStringClass</a></span>()</code> </td> |
| </tr> |
| <tr id="i81" class="rowColor"> |
| <td class="colFirst"><code>protected void</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClassDetails-java.lang.StringBuilder-">toStringClassDetails</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/StringBuilder.html?is-external=true" title="class or interface in java.lang">StringBuilder</a> builder)</code> |
| <div class="block">Extend the toString() information with the procedure details |
| e.g.</div> |
| </td> |
| </tr> |
| <tr id="i82" class="altColor"> |
| <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/procedure2/Procedure.html#toStringDetails--">toStringDetails</a></span>()</code> |
| <div class="block">Extend the toString() information with more procedure details</div> |
| </td> |
| </tr> |
| <tr id="i83" class="rowColor"> |
| <td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/StringBuilder.html?is-external=true" title="class or interface in java.lang">StringBuilder</a></code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringSimpleSB--">toStringSimpleSB</a></span>()</code> |
| <div class="block">Build the StringBuilder for the simple form of procedure string.</div> |
| </td> |
| </tr> |
| <tr id="i84" class="altColor"> |
| <td class="colFirst"><code>protected void</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringState-java.lang.StringBuilder-">toStringState</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/StringBuilder.html?is-external=true" title="class or interface in java.lang">StringBuilder</a> builder)</code> |
| <div class="block">Called from <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--"><code>toString()</code></a> when interpolating <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2"><code>Procedure</code></a> State.</div> |
| </td> |
| </tr> |
| <tr id="i85" class="rowColor"> |
| <td class="colFirst"><code>(package private) boolean</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#tryRunnable--">tryRunnable</a></span>()</code> |
| <div class="block">Try to set this procedure into RUNNABLE state.</div> |
| </td> |
| </tr> |
| <tr id="i86" class="altColor"> |
| <td class="colFirst"><code>protected void</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnFinish-TEnvironment-long-boolean-">updateMetricsOnFinish</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a> env, |
| long runtime, |
| boolean success)</code> |
| <div class="block">This function will be called just after procedure execution is finished.</div> |
| </td> |
| </tr> |
| <tr id="i87" class="rowColor"> |
| <td class="colFirst"><code>protected void</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateMetricsOnSubmit-TEnvironment-">updateMetricsOnSubmit</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a> env)</code> |
| <div class="block">This function will be called just when procedure is submitted for execution.</div> |
| </td> |
| </tr> |
| <tr id="i88" class="altColor"> |
| <td class="colFirst"><code>protected void</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#updateTimestamp--">updateTimestamp</a></span>()</code> |
| <div class="block">Called by ProcedureExecutor after each time a procedure step is executed.</div> |
| </td> |
| </tr> |
| <tr id="i89" class="rowColor"> |
| <td class="colFirst"><code>protected boolean</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#waitInitialized-TEnvironment-">waitInitialized</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</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>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>acquireLock(Object)</code></a> to actually handle the lock for this procedure.</div> |
| </td> |
| </tr> |
| <tr id="i90" class="altColor"> |
| <td class="colFirst"><code>protected boolean</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#wasExecuted--">wasExecuted</a></span>()</code> </td> |
| </tr> |
| </table> |
| <ul class="blockList"> |
| <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> |
| <!-- --> |
| </a> |
| <h3>Methods inherited from class 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#equals-java.lang.Object-" title="class or interface in java.lang">equals</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#hashCode--" title="class or interface in java.lang">hashCode</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#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 org.slf4j.Logger <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.111">LOG</a></pre> |
| </li> |
| </ul> |
| <a name="NO_PROC_ID"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>NO_PROC_ID</h4> |
| <pre>public static final long <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.112">NO_PROC_ID</a></pre> |
| <dl> |
| <dt><span class="seeLabel">See Also:</span></dt> |
| <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.procedure2.Procedure.NO_PROC_ID">Constant Field Values</a></dd> |
| </dl> |
| </li> |
| </ul> |
| <a name="NO_TIMEOUT"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>NO_TIMEOUT</h4> |
| <pre>protected static final int <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.113">NO_TIMEOUT</a></pre> |
| <dl> |
| <dt><span class="seeLabel">See Also:</span></dt> |
| <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.procedure2.Procedure.NO_TIMEOUT">Constant Field Values</a></dd> |
| </dl> |
| </li> |
| </ul> |
| <a name="nonceKey"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>nonceKey</h4> |
| <pre>private <a href="../../../../../org/apache/hadoop/hbase/util/NonceKey.html" title="class in org.apache.hadoop.hbase.util">NonceKey</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.122">nonceKey</a></pre> |
| </li> |
| </ul> |
| <a name="owner"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>owner</h4> |
| <pre>private <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/procedure2/Procedure.html#line.123">owner</a></pre> |
| </li> |
| </ul> |
| <a name="parentProcId"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>parentProcId</h4> |
| <pre>private long <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.124">parentProcId</a></pre> |
| </li> |
| </ul> |
| <a name="rootProcId"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>rootProcId</h4> |
| <pre>private long <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.125">rootProcId</a></pre> |
| </li> |
| </ul> |
| <a name="procId"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>procId</h4> |
| <pre>private long <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.126">procId</a></pre> |
| </li> |
| </ul> |
| <a name="submittedTime"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>submittedTime</h4> |
| <pre>private long <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.127">submittedTime</a></pre> |
| </li> |
| </ul> |
| <a name="state"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>state</h4> |
| <pre>private org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.130">state</a></pre> |
| </li> |
| </ul> |
| <a name="exception"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>exception</h4> |
| <pre>private <a href="../../../../../org/apache/hadoop/hbase/procedure2/RemoteProcedureException.html" title="class in org.apache.hadoop.hbase.procedure2">RemoteProcedureException</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.131">exception</a></pre> |
| </li> |
| </ul> |
| <a name="stackIndexes"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>stackIndexes</h4> |
| <pre>private int[] <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.132">stackIndexes</a></pre> |
| </li> |
| </ul> |
| <a name="childrenLatch"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>childrenLatch</h4> |
| <pre>private int <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.133">childrenLatch</a></pre> |
| </li> |
| </ul> |
| <a name="timeout"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>timeout</h4> |
| <pre>private volatile int <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.135">timeout</a></pre> |
| </li> |
| </ul> |
| <a name="lastUpdate"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>lastUpdate</h4> |
| <pre>private volatile long <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.136">lastUpdate</a></pre> |
| </li> |
| </ul> |
| <a name="result"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>result</h4> |
| <pre>private volatile byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.138">result</a></pre> |
| </li> |
| </ul> |
| <a name="locked"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>locked</h4> |
| <pre>private volatile boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.140">locked</a></pre> |
| </li> |
| </ul> |
| <a name="lockedWhenLoading"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>lockedWhenLoading</h4> |
| <pre>private boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.142">lockedWhenLoading</a></pre> |
| </li> |
| </ul> |
| <a name="bypass"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>bypass</h4> |
| <pre>private volatile boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.158">bypass</a></pre> |
| <div class="block">Used for override complete of the procedure without actually doing any logic in the procedure. |
| If bypass is set to true, when executing it will return null when |
| <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doExecute-TEnvironment-"><code>doExecute(Object)</code></a> is called to finish the procedure and release any locks |
| it may currently hold. The bypass does cleanup around the Procedure as far as the |
| Procedure framework is concerned. It does not clean any internal state that the |
| Procedure's themselves may have set. That is for the Procedures to do themselves |
| when bypass is called. They should override bypass and do their cleanup in the |
| overridden bypass method (be sure to call the parent bypass to ensure proper |
| processing). |
| <p></p>Bypassing a procedure is not like aborting. Aborting a procedure will trigger |
| a rollback. And since the <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#abort-TEnvironment-"><code>abort(Object)</code></a> method is overrideable |
| Some procedures may have chosen to ignore the aborting.</div> |
| </li> |
| </ul> |
| <a name="persist"> |
| <!-- --> |
| </a> |
| <ul class="blockListLast"> |
| <li class="blockList"> |
| <h4>persist</h4> |
| <pre>private boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.172">persist</a></pre> |
| <div class="block">Indicate whether we need to persist the procedure to ProcedureStore after execution. Default to |
| true, and the implementation can all <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#skipPersistence--"><code>skipPersistence()</code></a> to let the framework skip the |
| persistence of the procedure. |
| <p/> |
| This is useful when the procedure is in error and you want to retry later. The retry interval |
| and the number of retries are usually not critical so skip the persistence can save some |
| resources, and also speed up the restart processing. |
| <p/> |
| Notice that this value will be reset to true every time before execution. And when rolling back |
| we do not test this value.</div> |
| </li> |
| </ul> |
| </li> |
| </ul> |
| <!-- ========= CONSTRUCTOR DETAIL ======== --> |
| <ul class="blockList"> |
| <li class="blockList"><a name="constructor.detail"> |
| <!-- --> |
| </a> |
| <h3>Constructor Detail</h3> |
| <a name="Procedure--"> |
| <!-- --> |
| </a> |
| <ul class="blockListLast"> |
| <li class="blockList"> |
| <h4>Procedure</h4> |
| <pre>public <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.110">Procedure</a>()</pre> |
| </li> |
| </ul> |
| </li> |
| </ul> |
| <!-- ============ METHOD DETAIL ========== --> |
| <ul class="blockList"> |
| <li class="blockList"><a name="method.detail"> |
| <!-- --> |
| </a> |
| <h3>Method Detail</h3> |
| <a name="isBypass--"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>isBypass</h4> |
| <pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.174">isBypass</a>()</pre> |
| </li> |
| </ul> |
| <a name="bypass-java.lang.Object-"> |
| <!-- --> |
| </a><a name="bypass-TEnvironment-"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>bypass</h4> |
| <pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.187">bypass</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a> env)</pre> |
| <div class="block">Set the bypass to true. |
| Only called in <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#bypassProcedure-long-long-boolean-boolean-"><code>ProcedureExecutor.bypassProcedure(long, long, boolean, boolean)</code></a> for now. |
| DO NOT use this method alone, since we can't just bypass one single procedure. We need to |
| bypass its ancestor too. If your Procedure has set state, it needs to undo it in here.</div> |
| <dl> |
| <dt><span class="paramLabel">Parameters:</span></dt> |
| <dd><code>env</code> - Current environment. May be null because of context; e.g. pretty-printing |
| procedure WALs where there is no 'environment' (and where Procedures that require |
| an 'environment' won't be run.</dd> |
| </dl> |
| </li> |
| </ul> |
| <a name="needPersistence--"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>needPersistence</h4> |
| <pre>boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.191">needPersistence</a>()</pre> |
| </li> |
| </ul> |
| <a name="resetPersistence--"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>resetPersistence</h4> |
| <pre>void <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.195">resetPersistence</a>()</pre> |
| </li> |
| </ul> |
| <a name="skipPersistence--"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>skipPersistence</h4> |
| <pre>protected final void <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.199">skipPersistence</a>()</pre> |
| </li> |
| </ul> |
| <a name="execute-java.lang.Object-"> |
| <!-- --> |
| </a><a name="execute-TEnvironment-"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>execute</h4> |
| <pre>protected abstract <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a><<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a>>[] <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.216">execute</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a> env) |
| throws <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureYieldException.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureYieldException</a>, |
| <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureSuspendedException.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureSuspendedException</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> |
| <div class="block">The main code of the procedure. It must be idempotent since execute() |
| may be called multiple times in case of machine failure in the middle |
| of the execution.</div> |
| <dl> |
| <dt><span class="paramLabel">Parameters:</span></dt> |
| <dd><code>env</code> - the environment passed to the ProcedureExecutor</dd> |
| <dt><span class="returnLabel">Returns:</span></dt> |
| <dd>a set of sub-procedures to run or ourselves if there is more work to do or null if the |
| procedure is done.</dd> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureYieldException.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureYieldException</a></code> - the procedure will be added back to the queue and retried |
| later.</dd> |
| <dd><code><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></code> - the procedure will be added back to the queue and retried later.</dd> |
| <dd><code><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureSuspendedException.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureSuspendedException</a></code> - Signal to the executor that Procedure has suspended itself |
| and has set itself up waiting for an external event to wake it back up again.</dd> |
| </dl> |
| </li> |
| </ul> |
| <a name="rollback-java.lang.Object-"> |
| <!-- --> |
| </a><a name="rollback-TEnvironment-"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>rollback</h4> |
| <pre>protected abstract void <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.230">rollback</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a> env) |
| 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> |
| <div class="block">The code to undo what was done by the execute() code. |
| It is called when the procedure or one of the sub-procedures failed or an |
| abort was requested. It should cleanup all the resources created by |
| the execute() call. The implementation must be idempotent since rollback() |
| may be called multiple time in case of machine failure in the middle |
| of the execution.</div> |
| <dl> |
| <dt><span class="paramLabel">Parameters:</span></dt> |
| <dd><code>env</code> - the environment passed to the ProcedureExecutor</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> - temporary failure, the rollback will retry later</dd> |
| <dd><code><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></code> - the procedure will be added back to the queue and retried later</dd> |
| </dl> |
| </li> |
| </ul> |
| <a name="abort-java.lang.Object-"> |
| <!-- --> |
| </a><a name="abort-TEnvironment-"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>abort</h4> |
| <pre>protected abstract boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.244">abort</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a> env)</pre> |
| <div class="block">The abort() call is asynchronous and each procedure must decide how to deal |
| with it, if they want to be abortable. The simplest implementation |
| is to have an AtomicBoolean set in the abort() method and then the execute() |
| will check if the abort flag is set or not. |
| abort() may be called multiple times from the client, so the implementation |
| must be idempotent. |
| |
| <p>NOTE: abort() is not like Thread.interrupt(). It is just a notification |
| that allows the procedure implementor abort.</div> |
| </li> |
| </ul> |
| <a name="serializeStateData-org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer-"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>serializeStateData</h4> |
| <pre>protected abstract void <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.252">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">The user-level code of the procedure may have some state to |
| persist (e.g. input arguments or current position in the processing state) to |
| be able to resume on failure.</div> |
| <dl> |
| <dt><span class="paramLabel">Parameters:</span></dt> |
| <dd><code>serializer</code> - stores the serializable state</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="deserializeStateData-org.apache.hadoop.hbase.procedure2.ProcedureStateSerializer-"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>deserializeStateData</h4> |
| <pre>protected abstract void <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.260">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">Called on store load to allow the user to decode the previously serialized |
| state.</div> |
| <dl> |
| <dt><span class="paramLabel">Parameters:</span></dt> |
| <dd><code>serializer</code> - contains the serialized state</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="waitInitialized-java.lang.Object-"> |
| <!-- --> |
| </a><a name="waitInitialized-TEnvironment-"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>waitInitialized</h4> |
| <pre>protected boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.275">waitInitialized</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a> env)</pre> |
| <div class="block">The <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doAcquireLock-TEnvironment-org.apache.hadoop.hbase.procedure2.store.ProcedureStore-"><code>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>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>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="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-java.lang.Object-"> |
| <!-- --> |
| </a><a name="acquireLock-TEnvironment-"> |
| <!-- --> |
| </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/procedure2/Procedure.html#line.303">acquireLock</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a> env)</pre> |
| <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>execute(Object)</code></a>. It calls <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#releaseLock-TEnvironment-"><code>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>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="returnLabel">Returns:</span></dt> |
| <dd>the lock state as described above.</dd> |
| </dl> |
| </li> |
| </ul> |
| <a name="releaseLock-java.lang.Object-"> |
| <!-- --> |
| </a><a name="releaseLock-TEnvironment-"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>releaseLock</h4> |
| <pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.310">releaseLock</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a> env)</pre> |
| <div class="block">The user should override this method, and release lock if necessary.</div> |
| </li> |
| </ul> |
| <a name="holdLock-java.lang.Object-"> |
| <!-- --> |
| </a><a name="holdLock-TEnvironment-"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>holdLock</h4> |
| <pre>protected boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.318">holdLock</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a> env)</pre> |
| <div class="block">Used to keep the procedure lock even when the procedure is yielding or suspended.</div> |
| <dl> |
| <dt><span class="returnLabel">Returns:</span></dt> |
| <dd>true if the procedure should hold on the lock until completionCleanup()</dd> |
| </dl> |
| </li> |
| </ul> |
| <a name="hasLock--"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>hasLock</h4> |
| <pre>public final boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.330">hasLock</a>()</pre> |
| <div class="block">This is used in conjunction with <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-"><code>holdLock(Object)</code></a>. If <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-"><code>holdLock(Object)</code></a> |
| returns true, the procedure executor will call acquireLock() once and thereafter |
| not call <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#releaseLock-TEnvironment-"><code>releaseLock(Object)</code></a> until the Procedure is done (Normally, it calls |
| release/acquire around each invocation of <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#execute-TEnvironment-"><code>execute(Object)</code></a>.</div> |
| <dl> |
| <dt><span class="returnLabel">Returns:</span></dt> |
| <dd>true if the procedure has the lock, false otherwise.</dd> |
| <dt><span class="seeLabel">See Also:</span></dt> |
| <dd><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#holdLock-TEnvironment-"><code>holdLock(Object)</code></a></dd> |
| </dl> |
| </li> |
| </ul> |
| <a name="beforeReplay-java.lang.Object-"> |
| <!-- --> |
| </a><a name="beforeReplay-TEnvironment-"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>beforeReplay</h4> |
| <pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.340">beforeReplay</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a> env)</pre> |
| <div class="block">Called when the procedure is loaded for replay. |
| The procedure implementor may use this method to perform some quick |
| operation before replay. |
| e.g. failing the procedure if the state on replay may be unknown.</div> |
| </li> |
| </ul> |
| <a name="afterReplay-java.lang.Object-"> |
| <!-- --> |
| </a><a name="afterReplay-TEnvironment-"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>afterReplay</h4> |
| <pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.348">afterReplay</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a> env)</pre> |
| <div class="block">Called when the procedure is ready to be added to the queue after |
| the loading/replay operation.</div> |
| </li> |
| </ul> |
| <a name="completionCleanup-java.lang.Object-"> |
| <!-- --> |
| </a><a name="completionCleanup-TEnvironment-"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>completionCleanup</h4> |
| <pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.358">completionCleanup</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a> env)</pre> |
| <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. |
| This operation will not be retried on failure. If a procedure took a lock, |
| it will have been released when this method runs.</div> |
| </li> |
| </ul> |
| <a name="isYieldAfterExecutionStep-java.lang.Object-"> |
| <!-- --> |
| </a><a name="isYieldAfterExecutionStep-TEnvironment-"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>isYieldAfterExecutionStep</h4> |
| <pre>protected boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.370">isYieldAfterExecutionStep</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a> env)</pre> |
| <div class="block">By default, the procedure framework/executor will try to run procedures start to finish. |
| Return true to make the executor yield between each execution step to |
| give other procedures a chance to run.</div> |
| <dl> |
| <dt><span class="paramLabel">Parameters:</span></dt> |
| <dd><code>env</code> - the environment passed to the ProcedureExecutor</dd> |
| <dt><span class="returnLabel">Returns:</span></dt> |
| <dd>Return true if the executor should yield on completion of an execution step. |
| Defaults to return false.</dd> |
| </dl> |
| </li> |
| </ul> |
| <a name="shouldWaitClientAck-java.lang.Object-"> |
| <!-- --> |
| </a><a name="shouldWaitClientAck-TEnvironment-"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>shouldWaitClientAck</h4> |
| <pre>protected boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.383">shouldWaitClientAck</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a> env)</pre> |
| <div class="block">By default, the executor will keep the procedure result around util |
| the eviction TTL is expired. The client can cut down the waiting time |
| by requesting that the result is removed from the executor. |
| In case of system started procedure, we can force the executor to auto-ack.</div> |
| <dl> |
| <dt><span class="paramLabel">Parameters:</span></dt> |
| <dd><code>env</code> - the environment passed to the ProcedureExecutor</dd> |
| <dt><span class="returnLabel">Returns:</span></dt> |
| <dd>true if the executor should wait the client ack for the result. |
| Defaults to return true.</dd> |
| </dl> |
| </li> |
| </ul> |
| <a name="getProcedureMetrics-java.lang.Object-"> |
| <!-- --> |
| </a><a name="getProcedureMetrics-TEnvironment-"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>getProcedureMetrics</h4> |
| <pre>protected <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureMetrics.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureMetrics</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.393">getProcedureMetrics</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a> env)</pre> |
| <div class="block">Override this method to provide procedure specific counters for submitted count, failed |
| count and time histogram.</div> |
| <dl> |
| <dt><span class="paramLabel">Parameters:</span></dt> |
| <dd><code>env</code> - The environment passed to the procedure executor</dd> |
| <dt><span class="returnLabel">Returns:</span></dt> |
| <dd>Container object for procedure related metric</dd> |
| </dl> |
| </li> |
| </ul> |
| <a name="updateMetricsOnSubmit-java.lang.Object-"> |
| <!-- --> |
| </a><a name="updateMetricsOnSubmit-TEnvironment-"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>updateMetricsOnSubmit</h4> |
| <pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.403">updateMetricsOnSubmit</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a> env)</pre> |
| <div class="block">This function will be called just when procedure is submitted for execution. Override this |
| method to update the metrics at the beginning of the procedure. The default implementation |
| updates submitted counter if <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-"><code>getProcedureMetrics(Object)</code></a> returns non-null |
| <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureMetrics.html" title="interface in org.apache.hadoop.hbase.procedure2"><code>ProcedureMetrics</code></a>.</div> |
| </li> |
| </ul> |
| <a name="updateMetricsOnFinish-java.lang.Object-long-boolean-"> |
| <!-- --> |
| </a><a name="updateMetricsOnFinish-TEnvironment-long-boolean-"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>updateMetricsOnFinish</h4> |
| <pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.429">updateMetricsOnFinish</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a> env, |
| long runtime, |
| boolean success)</pre> |
| <div class="block">This function will be called just after procedure execution is finished. Override this method |
| to update metrics at the end of the procedure. If <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-"><code>getProcedureMetrics(Object)</code></a> returns |
| non-null <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureMetrics.html" title="interface in org.apache.hadoop.hbase.procedure2"><code>ProcedureMetrics</code></a>, the default implementation adds runtime of a procedure to a |
| time histogram for successfully completed procedures. Increments failed counter for failed |
| procedures. |
| <p/> |
| TODO: As any of the sub-procedures on failure rolls back all procedures in the stack, including |
| successfully finished siblings, this function may get called twice in certain cases for certain |
| procedures. Explore further if this can be called once.</div> |
| <dl> |
| <dt><span class="paramLabel">Parameters:</span></dt> |
| <dd><code>env</code> - The environment passed to the procedure executor</dd> |
| <dd><code>runtime</code> - Runtime of the procedure in milliseconds</dd> |
| <dd><code>success</code> - true if procedure is completed successfully</dd> |
| </dl> |
| </li> |
| </ul> |
| <a name="toString--"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>toString</h4> |
| <pre>public <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/procedure2/Procedure.html#line.449">toString</a>()</pre> |
| <dl> |
| <dt><span class="overrideSpecifyLabel">Overrides:</span></dt> |
| <dd><code><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></code> in class <code><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></code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a name="toStringSimpleSB--"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>toStringSimpleSB</h4> |
| <pre>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/StringBuilder.html?is-external=true" title="class or interface in java.lang">StringBuilder</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.458">toStringSimpleSB</a>()</pre> |
| <div class="block">Build the StringBuilder for the simple form of procedure string.</div> |
| <dl> |
| <dt><span class="returnLabel">Returns:</span></dt> |
| <dd>the StringBuilder</dd> |
| </dl> |
| </li> |
| </ul> |
| <a name="toStringDetails--"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>toStringDetails</h4> |
| <pre>public <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/procedure2/Procedure.html#line.500">toStringDetails</a>()</pre> |
| <div class="block">Extend the toString() information with more procedure details</div> |
| </li> |
| </ul> |
| <a name="toStringClass--"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>toStringClass</h4> |
| <pre>protected <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/procedure2/Procedure.html#line.519">toStringClass</a>()</pre> |
| </li> |
| </ul> |
| <a name="toStringState-java.lang.StringBuilder-"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>toStringState</h4> |
| <pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.530">toStringState</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/StringBuilder.html?is-external=true" title="class or interface in java.lang">StringBuilder</a> builder)</pre> |
| <div class="block">Called from <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toString--"><code>toString()</code></a> when interpolating <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2"><code>Procedure</code></a> State. Allows decorating |
| generic Procedure State with Procedure particulars.</div> |
| <dl> |
| <dt><span class="paramLabel">Parameters:</span></dt> |
| <dd><code>builder</code> - Append current <code>ProcedureProtos.ProcedureState</code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a name="toStringClassDetails-java.lang.StringBuilder-"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>toStringClassDetails</h4> |
| <pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.539">toStringClassDetails</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/StringBuilder.html?is-external=true" title="class or interface in java.lang">StringBuilder</a> builder)</pre> |
| <div class="block">Extend the toString() information with the procedure details |
| e.g. className and parameters</div> |
| <dl> |
| <dt><span class="paramLabel">Parameters:</span></dt> |
| <dd><code>builder</code> - the string builder to use to append the proc specific information</dd> |
| </dl> |
| </li> |
| </ul> |
| <a name="getProcId--"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>getProcId</h4> |
| <pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.550">getProcId</a>()</pre> |
| </li> |
| </ul> |
| <a name="hasParent--"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>hasParent</h4> |
| <pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.554">hasParent</a>()</pre> |
| </li> |
| </ul> |
| <a name="getParentProcId--"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>getParentProcId</h4> |
| <pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.558">getParentProcId</a>()</pre> |
| </li> |
| </ul> |
| <a name="getRootProcId--"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>getRootProcId</h4> |
| <pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.562">getRootProcId</a>()</pre> |
| </li> |
| </ul> |
| <a name="getProcName--"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>getProcName</h4> |
| <pre>public <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/procedure2/Procedure.html#line.566">getProcName</a>()</pre> |
| </li> |
| </ul> |
| <a name="getNonceKey--"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>getNonceKey</h4> |
| <pre>public <a href="../../../../../org/apache/hadoop/hbase/util/NonceKey.html" title="class in org.apache.hadoop.hbase.util">NonceKey</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.570">getNonceKey</a>()</pre> |
| </li> |
| </ul> |
| <a name="getSubmittedTime--"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>getSubmittedTime</h4> |
| <pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.574">getSubmittedTime</a>()</pre> |
| </li> |
| </ul> |
| <a name="getOwner--"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>getOwner</h4> |
| <pre>public <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/procedure2/Procedure.html#line.578">getOwner</a>()</pre> |
| </li> |
| </ul> |
| <a name="hasOwner--"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>hasOwner</h4> |
| <pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.582">hasOwner</a>()</pre> |
| </li> |
| </ul> |
| <a name="setProcId-long-"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>setProcId</h4> |
| <pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.589">setProcId</a>(long procId)</pre> |
| <div class="block">Called by the ProcedureExecutor to assign the ID to the newly created procedure.</div> |
| </li> |
| </ul> |
| <a name="setParentProcId-long-"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>setParentProcId</h4> |
| <pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.598">setParentProcId</a>(long parentProcId)</pre> |
| <div class="block">Called by the ProcedureExecutor to assign the parent to the newly created procedure.</div> |
| </li> |
| </ul> |
| <a name="setRootProcId-long-"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>setRootProcId</h4> |
| <pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.602">setRootProcId</a>(long rootProcId)</pre> |
| </li> |
| </ul> |
| <a name="setNonceKey-org.apache.hadoop.hbase.util.NonceKey-"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>setNonceKey</h4> |
| <pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.609">setNonceKey</a>(<a href="../../../../../org/apache/hadoop/hbase/util/NonceKey.html" title="class in org.apache.hadoop.hbase.util">NonceKey</a> nonceKey)</pre> |
| <div class="block">Called by the ProcedureExecutor to set the value to the newly created procedure.</div> |
| </li> |
| </ul> |
| <a name="setOwner-java.lang.String-"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>setOwner</h4> |
| <pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.613">setOwner</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> owner)</pre> |
| </li> |
| </ul> |
| <a name="setOwner-org.apache.hadoop.hbase.security.User-"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>setOwner</h4> |
| <pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.617">setOwner</a>(<a href="../../../../../org/apache/hadoop/hbase/security/User.html" title="class in org.apache.hadoop.hbase.security">User</a> owner)</pre> |
| </li> |
| </ul> |
| <a name="setSubmittedTime-long-"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>setSubmittedTime</h4> |
| <pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.626">setSubmittedTime</a>(long submittedTime)</pre> |
| <div class="block">Called on store load to initialize the Procedure internals after |
| the creation/deserialization.</div> |
| </li> |
| </ul> |
| <a name="setTimeout-int-"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>setTimeout</h4> |
| <pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.636">setTimeout</a>(int timeout)</pre> |
| <dl> |
| <dt><span class="paramLabel">Parameters:</span></dt> |
| <dd><code>timeout</code> - timeout interval in msec</dd> |
| </dl> |
| </li> |
| </ul> |
| <a name="hasTimeout--"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>hasTimeout</h4> |
| <pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.640">hasTimeout</a>()</pre> |
| </li> |
| </ul> |
| <a name="getTimeout--"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>getTimeout</h4> |
| <pre>public int <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.647">getTimeout</a>()</pre> |
| <dl> |
| <dt><span class="returnLabel">Returns:</span></dt> |
| <dd>the timeout in msec</dd> |
| </dl> |
| </li> |
| </ul> |
| <a name="setLastUpdate-long-"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>setLastUpdate</h4> |
| <pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.655">setLastUpdate</a>(long lastUpdate)</pre> |
| <div class="block">Called on store load to initialize the Procedure internals after |
| the creation/deserialization.</div> |
| </li> |
| </ul> |
| <a name="updateTimestamp--"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>updateTimestamp</h4> |
| <pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.662">updateTimestamp</a>()</pre> |
| <div class="block">Called by ProcedureExecutor after each time a procedure step is executed.</div> |
| </li> |
| </ul> |
| <a name="getLastUpdate--"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>getLastUpdate</h4> |
| <pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.666">getLastUpdate</a>()</pre> |
| </li> |
| </ul> |
| <a name="getTimeoutTimestamp--"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>getTimeoutTimestamp</h4> |
| <pre>protected long <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.676">getTimeoutTimestamp</a>()</pre> |
| <div class="block">Timeout of the next timeout. |
| Called by the ProcedureExecutor if the procedure has timeout set and |
| the procedure is in the waiting queue.</div> |
| <dl> |
| <dt><span class="returnLabel">Returns:</span></dt> |
| <dd>the timestamp of the next timeout.</dd> |
| </dl> |
| </li> |
| </ul> |
| <a name="elapsedTime--"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>elapsedTime</h4> |
| <pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.686">elapsedTime</a>()</pre> |
| <dl> |
| <dt><span class="returnLabel">Returns:</span></dt> |
| <dd>the time elapsed between the last update and the start time of the procedure.</dd> |
| </dl> |
| </li> |
| </ul> |
| <a name="getResult--"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>getResult</h4> |
| <pre>public byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.693">getResult</a>()</pre> |
| <dl> |
| <dt><span class="returnLabel">Returns:</span></dt> |
| <dd>the serialized result if any, otherwise null</dd> |
| </dl> |
| </li> |
| </ul> |
| <a name="setResult-byte:A-"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>setResult</h4> |
| <pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.701">setResult</a>(byte[] result)</pre> |
| <div class="block">The procedure may leave a "result" on completion.</div> |
| <dl> |
| <dt><span class="paramLabel">Parameters:</span></dt> |
| <dd><code>result</code> - the serialized result that will be passed to the client</dd> |
| </dl> |
| </li> |
| </ul> |
| <a name="lockedWhenLoading--"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>lockedWhenLoading</h4> |
| <pre>final void <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.710">lockedWhenLoading</a>()</pre> |
| <div class="block">Will only be called when loading procedures from procedure store, where we need to record |
| whether the procedure has already held a lock. Later we will call |
| <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#restoreLock-TEnvironment-"><code>restoreLock(Object)</code></a> to actually acquire the lock.</div> |
| </li> |
| </ul> |
| <a name="isLockedWhenLoading--"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>isLockedWhenLoading</h4> |
| <pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.722">isLockedWhenLoading</a>()</pre> |
| <div class="block">Can only be called when restarting, before the procedure actually being executed, as after we |
| actually call the <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#doAcquireLock-TEnvironment-org.apache.hadoop.hbase.procedure2.store.ProcedureStore-"><code>doAcquireLock(Object, ProcedureStore)</code></a> method, we will reset |
| <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#lockedWhenLoading"><code>lockedWhenLoading</code></a> to false. |
| <p/> |
| Now it is only used in the ProcedureScheduler to determine whether we should put a Procedure in |
| front of a queue.</div> |
| </li> |
| </ul> |
| <a name="isRunnable--"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>isRunnable</h4> |
| <pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.738">isRunnable</a>()</pre> |
| <dl> |
| <dt><span class="returnLabel">Returns:</span></dt> |
| <dd>true if the procedure is in a RUNNABLE state.</dd> |
| </dl> |
| </li> |
| </ul> |
| <a name="isInitializing--"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>isInitializing</h4> |
| <pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.742">isInitializing</a>()</pre> |
| </li> |
| </ul> |
| <a name="isFailed--"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>isFailed</h4> |
| <pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.749">isFailed</a>()</pre> |
| <dl> |
| <dt><span class="returnLabel">Returns:</span></dt> |
| <dd>true if the procedure has failed. It may or may not have rolled back.</dd> |
| </dl> |
| </li> |
| </ul> |
| <a name="isSuccess--"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>isSuccess</h4> |
| <pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.756">isSuccess</a>()</pre> |
| <dl> |
| <dt><span class="returnLabel">Returns:</span></dt> |
| <dd>true if the procedure is finished successfully.</dd> |
| </dl> |
| </li> |
| </ul> |
| <a name="isFinished--"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>isFinished</h4> |
| <pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.764">isFinished</a>()</pre> |
| <dl> |
| <dt><span class="returnLabel">Returns:</span></dt> |
| <dd>true if the procedure is finished. The Procedure may be completed successfully or |
| rolledback.</dd> |
| </dl> |
| </li> |
| </ul> |
| <a name="isWaiting--"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>isWaiting</h4> |
| <pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.771">isWaiting</a>()</pre> |
| <dl> |
| <dt><span class="returnLabel">Returns:</span></dt> |
| <dd>true if the procedure is waiting for a child to finish or for an external event.</dd> |
| </dl> |
| </li> |
| </ul> |
| <a name="setState-org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState-"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>setState</h4> |
| <pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.782">setState</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState state)</pre> |
| </li> |
| </ul> |
| <a name="getState--"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>getState</h4> |
| <pre>public org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos.ProcedureState <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.787">getState</a>()</pre> |
| </li> |
| </ul> |
| <a name="setFailure-java.lang.String-java.lang.Throwable-"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>setFailure</h4> |
| <pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.791">setFailure</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> source, |
| <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a> cause)</pre> |
| </li> |
| </ul> |
| <a name="setFailure-org.apache.hadoop.hbase.procedure2.RemoteProcedureException-"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>setFailure</h4> |
| <pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.795">setFailure</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/RemoteProcedureException.html" title="class in org.apache.hadoop.hbase.procedure2">RemoteProcedureException</a> exception)</pre> |
| </li> |
| </ul> |
| <a name="setAbortFailure-java.lang.String-java.lang.String-"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>setAbortFailure</h4> |
| <pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.802">setAbortFailure</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> source, |
| <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> msg)</pre> |
| </li> |
| </ul> |
| <a name="setTimeoutFailure-java.lang.Object-"> |
| <!-- --> |
| </a><a name="setTimeoutFailure-TEnvironment-"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>setTimeoutFailure</h4> |
| <pre>protected boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.818">setTimeoutFailure</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a> env)</pre> |
| <div class="block">Called by the ProcedureExecutor when the timeout set by setTimeout() is expired. |
| <p/> |
| Another usage for this method is to implement retrying. A procedure can set the state to |
| <code>WAITING_TIMEOUT</code> by calling <code>setState</code> method, and throw a |
| <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureSuspendedException.html" title="class in org.apache.hadoop.hbase.procedure2"><code>ProcedureSuspendedException</code></a> to halt the execution of the procedure, and do not forget a |
| call <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#setTimeout-int-"><code>setTimeout(int)</code></a> method to set the timeout. And you should also override this |
| method to wake up the procedure, and also return false to tell the ProcedureExecutor that the |
| timeout event has been handled.</div> |
| <dl> |
| <dt><span class="returnLabel">Returns:</span></dt> |
| <dd>true to let the framework handle the timeout as abort, false in case the procedure |
| handled the timeout itself.</dd> |
| </dl> |
| </li> |
| </ul> |
| <a name="hasException--"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>hasException</h4> |
| <pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.828">hasException</a>()</pre> |
| </li> |
| </ul> |
| <a name="getException--"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>getException</h4> |
| <pre>public <a href="../../../../../org/apache/hadoop/hbase/procedure2/RemoteProcedureException.html" title="class in org.apache.hadoop.hbase.procedure2">RemoteProcedureException</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.832">getException</a>()</pre> |
| </li> |
| </ul> |
| <a name="setChildrenLatch-int-"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>setChildrenLatch</h4> |
| <pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.839">setChildrenLatch</a>(int numChildren)</pre> |
| <div class="block">Called by the ProcedureExecutor on procedure-load to restore the latch state</div> |
| </li> |
| </ul> |
| <a name="incChildrenLatch--"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>incChildrenLatch</h4> |
| <pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.850">incChildrenLatch</a>()</pre> |
| <div class="block">Called by the ProcedureExecutor on procedure-load to restore the latch state</div> |
| </li> |
| </ul> |
| <a name="childrenCountDown--"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>childrenCountDown</h4> |
| <pre>private boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.861">childrenCountDown</a>()</pre> |
| <div class="block">Called by the ProcedureExecutor to notify that one of the sub-procedures has completed.</div> |
| </li> |
| </ul> |
| <a name="tryRunnable--"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>tryRunnable</h4> |
| <pre>boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.875">tryRunnable</a>()</pre> |
| <div class="block">Try to set this procedure into RUNNABLE state. |
| Succeeds if all subprocedures/children are done.</div> |
| <dl> |
| <dt><span class="returnLabel">Returns:</span></dt> |
| <dd>True if we were able to move procedure to RUNNABLE state.</dd> |
| </dl> |
| </li> |
| </ul> |
| <a name="hasChildren--"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>hasChildren</h4> |
| <pre>protected boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.885">hasChildren</a>()</pre> |
| </li> |
| </ul> |
| <a name="getChildrenLatch--"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>getChildrenLatch</h4> |
| <pre>protected int <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.889">getChildrenLatch</a>()</pre> |
| </li> |
| </ul> |
| <a name="addStackIndex-int-"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>addStackIndex</h4> |
| <pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.897">addStackIndex</a>(int index)</pre> |
| <div class="block">Called by the RootProcedureState on procedure execution. |
| Each procedure store its stack-index positions.</div> |
| </li> |
| </ul> |
| <a name="removeStackIndex--"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>removeStackIndex</h4> |
| <pre>protected boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.907">removeStackIndex</a>()</pre> |
| </li> |
| </ul> |
| <a name="setStackIndexes-java.util.List-"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>setStackIndexes</h4> |
| <pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.921">setStackIndexes</a>(<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><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>> stackIndexes)</pre> |
| <div class="block">Called on store load to initialize the Procedure internals after |
| the creation/deserialization.</div> |
| </li> |
| </ul> |
| <a name="wasExecuted--"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>wasExecuted</h4> |
| <pre>protected boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.928">wasExecuted</a>()</pre> |
| </li> |
| </ul> |
| <a name="getStackIndexes--"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>getStackIndexes</h4> |
| <pre>protected int[] <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.932">getStackIndexes</a>()</pre> |
| </li> |
| </ul> |
| <a name="doExecute-java.lang.Object-"> |
| <!-- --> |
| </a><a name="doExecute-TEnvironment-"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>doExecute</h4> |
| <pre>protected <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a><<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a>>[] <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.945">doExecute</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a> env) |
| throws <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureYieldException.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureYieldException</a>, |
| <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureSuspendedException.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureSuspendedException</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> |
| <div class="block">Internal method called by the ProcedureExecutor that starts the user-level code execute().</div> |
| <dl> |
| <dt><span class="throwsLabel">Throws:</span></dt> |
| <dd><code><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureSuspendedException.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureSuspendedException</a></code> - This is used when procedure wants to halt processing and |
| skip out without changing states or releasing any locks held.</dd> |
| <dd><code><a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureYieldException.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureYieldException</a></code></dd> |
| <dd><code><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></code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a name="doRollback-java.lang.Object-"> |
| <!-- --> |
| </a><a name="doRollback-TEnvironment-"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>doRollback</h4> |
| <pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.962">doRollback</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a> env) |
| 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> |
| <div class="block">Internal method called by the ProcedureExecutor that starts the user-level code rollback().</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></dd> |
| <dd><code><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></code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a name="restoreLock-java.lang.Object-"> |
| <!-- --> |
| </a><a name="restoreLock-TEnvironment-"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>restoreLock</h4> |
| <pre>final void <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.976">restoreLock</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a> env)</pre> |
| </li> |
| </ul> |
| <a name="doAcquireLock-java.lang.Object-org.apache.hadoop.hbase.procedure2.store.ProcedureStore-"> |
| <!-- --> |
| </a><a name="doAcquireLock-TEnvironment-org.apache.hadoop.hbase.procedure2.store.ProcedureStore-"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>doAcquireLock</h4> |
| <pre>final <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/procedure2/Procedure.html#line.1006">doAcquireLock</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a> env, |
| <a href="../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStore.html" title="interface in org.apache.hadoop.hbase.procedure2.store">ProcedureStore</a> store)</pre> |
| <div class="block">Internal method called by the ProcedureExecutor that starts the user-level code acquireLock().</div> |
| </li> |
| </ul> |
| <a name="doReleaseLock-java.lang.Object-org.apache.hadoop.hbase.procedure2.store.ProcedureStore-"> |
| <!-- --> |
| </a><a name="doReleaseLock-TEnvironment-org.apache.hadoop.hbase.procedure2.store.ProcedureStore-"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>doReleaseLock</h4> |
| <pre>final void <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.1035">doReleaseLock</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a> env, |
| <a href="../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStore.html" title="interface in org.apache.hadoop.hbase.procedure2.store">ProcedureStore</a> store)</pre> |
| <div class="block">Internal method called by the ProcedureExecutor that starts the user-level code releaseLock().</div> |
| </li> |
| </ul> |
| <a name="compareTo-org.apache.hadoop.hbase.procedure2.Procedure-"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>compareTo</h4> |
| <pre>public int <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.1050">compareTo</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a><<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a>> other)</pre> |
| <dl> |
| <dt><span class="overrideSpecifyLabel">Specified by:</span></dt> |
| <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true#compareTo-T-" title="class or interface in java.lang">compareTo</a></code> in interface <code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a><<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="type parameter in Procedure">TEnvironment</a>>></code></dd> |
| </dl> |
| </li> |
| </ul> |
| <a name="getProcIdHashCode-long-"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>getProcIdHashCode</h4> |
| <pre>public static long <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.1062">getProcIdHashCode</a>(long procId)</pre> |
| <div class="block">Get an hashcode for the specified Procedure ID</div> |
| <dl> |
| <dt><span class="returnLabel">Returns:</span></dt> |
| <dd>the hashcode for the specified procId</dd> |
| </dl> |
| </li> |
| </ul> |
| <a name="getRootProcedureId-java.util.Map-org.apache.hadoop.hbase.procedure2.Procedure-"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>getRootProcedureId</h4> |
| <pre>protected static <T> <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> <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.1075">getRootProcedureId</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><<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>,<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a><T>> procedures, |
| <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a><T> proc)</pre> |
| <div class="block">Helper to lookup the root Procedure ID given a specified procedure.</div> |
| </li> |
| </ul> |
| <a name="haveSameParent-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure-"> |
| <!-- --> |
| </a> |
| <ul class="blockListLast"> |
| <li class="blockList"> |
| <h4>haveSameParent</h4> |
| <pre>public static boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure2/Procedure.html#line.1091">haveSameParent</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a><?> a, |
| <a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a><?> b)</pre> |
| <dl> |
| <dt><span class="paramLabel">Parameters:</span></dt> |
| <dd><code>a</code> - the first procedure to be compared.</dd> |
| <dd><code>b</code> - the second procedure to be compared.</dd> |
| <dt><span class="returnLabel">Returns:</span></dt> |
| <dd>true if the two procedures have the same parent</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/Procedure.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/procedure2/OnePhaseProcedure.html" title="class in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">Prev Class</span></a></li> |
| <li><a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.LockState.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">Next Class</span></a></li> |
| </ul> |
| <ul class="navList"> |
| <li><a href="../../../../../index.html?org/apache/hadoop/hbase/procedure2/Procedure.html" target="_top">Frames</a></li> |
| <li><a href="Procedure.html" target="_top">No Frames</a></li> |
| </ul> |
| <ul class="navList" id="allclasses_navbar_bottom"> |
| <li><a href="../../../../../allclasses-noframe.html">All 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: </li> |
| <li><a href="#nested.class.summary">Nested</a> | </li> |
| <li><a href="#field.summary">Field</a> | </li> |
| <li><a href="#constructor.summary">Constr</a> | </li> |
| <li><a href="#method.summary">Method</a></li> |
| </ul> |
| <ul class="subNavList"> |
| <li>Detail: </li> |
| <li><a href="#field.detail">Field</a> | </li> |
| <li><a href="#constructor.detail">Constr</a> | </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 © 2007–2021 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p> |
| </body> |
| </html> |