blob: a9c05df4e0d77dc4a4b838598741519a35f14f38 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>ProcedureStore (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="ProcedureStore (Apache HBase 3.0.0-alpha-2-SNAPSHOT API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":18,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":38,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6,"i15":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],16:["t5","Default Methods"],32:["t6","Deprecated 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/ProcedureStore.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/store/NoopProcedureStore.html" title="class in org.apache.hadoop.hbase.procedure2.store"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureIterator.html" title="interface in org.apache.hadoop.hbase.procedure2.store"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/procedure2/store/ProcedureStore.html" target="_top">Frames</a></li>
<li><a href="ProcedureStore.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.hadoop.hbase.procedure2.store</div>
<h2 title="Interface ProcedureStore" class="title">Interface ProcedureStore</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Known Implementing Classes:</dt>
<dd><a href="../../../../../../org/apache/hadoop/hbase/procedure2/store/NoopProcedureStore.html" title="class in org.apache.hadoop.hbase.procedure2.store">NoopProcedureStore</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStoreBase.html" title="class in org.apache.hadoop.hbase.procedure2.store">ProcedureStoreBase</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/store/region/RegionProcedureStore.html" title="class in org.apache.hadoop.hbase.procedure2.store.region">RegionProcedureStore</a>, <a href="../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">WALProcedureStore</a></dd>
</dl>
<hr>
<br>
<pre>@InterfaceAudience.Private
@InterfaceStability.Evolving
public interface <a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.html#line.42">ProcedureStore</a></pre>
<div class="block">The ProcedureStore is used by the executor to persist the state of each procedure execution. This
allows to resume the execution of pending/in-progress procedures in case of machine failure or
service shutdown.
<p/>
Notice that, the implementation must guarantee that the maxProcId when loading is the maximum one
in the whole history, not only the current live procedures. This is very important as for
executing remote procedures, we have some nonce checks at region server side to prevent executing
non-idempotent operations more than once. If the procedure id could go back, then we may
accidentally ignore some important operations such as region assign or unassign.<br/>
This may lead to some garbages so we provide a <a href="../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStore.html#cleanup--"><code>cleanup()</code></a> method, the framework will call
this method periodically and the store implementation could do some clean up works in this
method.</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">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Interface and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static interface&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureIterator.html" title="interface in org.apache.hadoop.hbase.procedure2.store">ProcedureStore.ProcedureIterator</a></span></code>
<div class="block">An Iterator over a collection of Procedure</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static interface&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureLoader.html" title="interface in org.apache.hadoop.hbase.procedure2.store">ProcedureStore.ProcedureLoader</a></span></code>
<div class="block">Interface passed to the ProcedureStore.load() method to handle the store-load events.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static interface&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureStoreListener.html" title="interface in org.apache.hadoop.hbase.procedure2.store">ProcedureStore.ProcedureStoreListener</a></span></code>
<div class="block">Store listener interface.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t5" class="tableTab"><span><a href="javascript:show(16);">Default Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>default void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStore.html#cleanup--">cleanup</a></span>()</code>
<div class="block">Will be called by the framework to give the store a chance to do some clean up works.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStore.html#delete-long-">delete</a></span>(long&nbsp;procId)</code>
<div class="block">The specified procId was removed from the executor,
due to completion, abort or failure.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStore.html#delete-long:A-int-int-">delete</a></span>(long[]&nbsp;procIds,
int&nbsp;offset,
int&nbsp;count)</code>
<div class="block">The specified procIds were removed from the executor,
due to completion, abort or failure.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStore.html#delete-org.apache.hadoop.hbase.procedure2.Procedure-long:A-">delete</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;?&gt;&nbsp;parentProc,
long[]&nbsp;subProcIds)</code>
<div class="block">The parent procedure completed.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStore.html#getNumThreads--">getNumThreads</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStore.html#insert-org.apache.hadoop.hbase.procedure2.Procedure:A-">insert</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;?&gt;[]&nbsp;procs)</code>
<div class="block">Serialize a set of new procedures.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStore.html#insert-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure:A-">insert</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;?&gt;&nbsp;proc,
<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;?&gt;[]&nbsp;subprocs)</code>
<div class="block">When a procedure is submitted to the executor insert(proc, null) will be called.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStore.html#isRunning--">isRunning</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStore.html#load-org.apache.hadoop.hbase.procedure2.store.ProcedureStore.ProcedureLoader-">load</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureLoader.html" title="interface in org.apache.hadoop.hbase.procedure2.store">ProcedureStore.ProcedureLoader</a>&nbsp;loader)</code>
<div class="block">Load the Procedures in the store.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStore.html#recoverLease--">recoverLease</a></span>()</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">since 2.3.0, will be removed in 4.0.0 along with
<a href="../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal"><code>WALProcedureStore</code></a>. As now we
will store the procedure data in a master local region, and master itself will deal
with the lease recovery of the region.</span></div>
</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStore.html#registerListener-org.apache.hadoop.hbase.procedure2.store.ProcedureStore.ProcedureStoreListener-">registerListener</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureStoreListener.html" title="interface in org.apache.hadoop.hbase.procedure2.store">ProcedureStore.ProcedureStoreListener</a>&nbsp;listener)</code>
<div class="block">Add the listener to the notification list.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStore.html#setRunningProcedureCount-int-">setRunningProcedureCount</a></span>(int&nbsp;count)</code>
<div class="block">Set the number of procedure running.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStore.html#start-int-">start</a></span>(int&nbsp;numThreads)</code>
<div class="block">Start/Open the procedure store</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStore.html#stop-boolean-">stop</a></span>(boolean&nbsp;abort)</code>
<div class="block">Stop/Close the procedure store</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStore.html#unregisterListener-org.apache.hadoop.hbase.procedure2.store.ProcedureStore.ProcedureStoreListener-">unregisterListener</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureStoreListener.html" title="interface in org.apache.hadoop.hbase.procedure2.store">ProcedureStore.ProcedureStoreListener</a>&nbsp;listener)</code>
<div class="block">Remove the listener from the notification list.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStore.html#update-org.apache.hadoop.hbase.procedure2.Procedure-">update</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;?&gt;&nbsp;proc)</code>
<div class="block">The specified procedure was executed,
and the new state should be written to the store.</div>
</td>
</tr>
</table>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="registerListener-org.apache.hadoop.hbase.procedure2.store.ProcedureStore.ProcedureStoreListener-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>registerListener</h4>
<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.html#line.149">registerListener</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureStoreListener.html" title="interface in org.apache.hadoop.hbase.procedure2.store">ProcedureStore.ProcedureStoreListener</a>&nbsp;listener)</pre>
<div class="block">Add the listener to the notification list.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>listener</code> - The AssignmentListener to register</dd>
</dl>
</li>
</ul>
<a name="unregisterListener-org.apache.hadoop.hbase.procedure2.store.ProcedureStore.ProcedureStoreListener-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>unregisterListener</h4>
<pre>boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.html#line.156">unregisterListener</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureStoreListener.html" title="interface in org.apache.hadoop.hbase.procedure2.store">ProcedureStore.ProcedureStoreListener</a>&nbsp;listener)</pre>
<div class="block">Remove the listener from the notification list.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>listener</code> - The AssignmentListener to unregister</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if the listner was in the list and it was removed, otherwise false.</dd>
</dl>
</li>
</ul>
<a name="start-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>start</h4>
<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.html#line.162">start</a>(int&nbsp;numThreads)
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">Start/Open the procedure store</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>numThreads</code> - number of threads to be used by the procedure store</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="stop-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>stop</h4>
<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.html#line.168">stop</a>(boolean&nbsp;abort)</pre>
<div class="block">Stop/Close the procedure store</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>abort</code> - true if the stop is an abort</dd>
</dl>
</li>
</ul>
<a name="isRunning--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isRunning</h4>
<pre>boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.html#line.173">isRunning</a>()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if the store is running, otherwise false.</dd>
</dl>
</li>
</ul>
<a name="getNumThreads--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getNumThreads</h4>
<pre>int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.html#line.178">getNumThreads</a>()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the number of threads/slots passed to start()</dd>
</dl>
</li>
</ul>
<a name="setRunningProcedureCount-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setRunningProcedureCount</h4>
<pre>int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.html#line.185">setRunningProcedureCount</a>(int&nbsp;count)</pre>
<div class="block">Set the number of procedure running.
This can be used, for example, by the store to know how long to wait before a sync.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>how many procedures are running (may not be same as <code>count</code>).</dd>
</dl>
</li>
</ul>
<a name="recoverLease--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>recoverLease</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.html#line.195">recoverLease</a>()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">since 2.3.0, will be removed in 4.0.0 along with
<a href="../../../../../../org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal"><code>WALProcedureStore</code></a>. As now we
will store the procedure data in a master local region, and master itself will deal
with the lease recovery of the region.</span></div>
<div class="block">Acquire the lease for the procedure store.</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>
</dl>
</li>
</ul>
<a name="load-org.apache.hadoop.hbase.procedure2.store.ProcedureStore.ProcedureLoader-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>load</h4>
<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.html#line.201">load</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureLoader.html" title="interface in org.apache.hadoop.hbase.procedure2.store">ProcedureStore.ProcedureLoader</a>&nbsp;loader)
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">Load the Procedures in the store.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>loader</code> - the ProcedureLoader that will handle the store-load events</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="insert-org.apache.hadoop.hbase.procedure2.Procedure-org.apache.hadoop.hbase.procedure2.Procedure:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>insert</h4>
<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.html#line.214">insert</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;?&gt;&nbsp;proc,
<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;?&gt;[]&nbsp;subprocs)</pre>
<div class="block">When a procedure is submitted to the executor insert(proc, null) will be called.
'proc' has a 'RUNNABLE' state and the initial information required to start up.
When a procedure is executed and it returns children insert(proc, subprocs) will be called.
'proc' has a 'WAITING' state and an update state.
'subprocs' are the children in 'RUNNABLE' state with the initial information.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>proc</code> - the procedure to serialize and write to the store.</dd>
<dd><code>subprocs</code> - the newly created child of the proc.</dd>
</dl>
</li>
</ul>
<a name="insert-org.apache.hadoop.hbase.procedure2.Procedure:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>insert</h4>
<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.html#line.223">insert</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;?&gt;[]&nbsp;procs)</pre>
<div class="block">Serialize a set of new procedures.
These procedures are freshly submitted to the executor and each procedure
has a 'RUNNABLE' state and the initial information required to start up.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>procs</code> - the procedures to serialize and write to the store.</dd>
</dl>
</li>
</ul>
<a name="update-org.apache.hadoop.hbase.procedure2.Procedure-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>update</h4>
<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.html#line.230">update</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;?&gt;&nbsp;proc)</pre>
<div class="block">The specified procedure was executed,
and the new state should be written to the store.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>proc</code> - the procedure to serialize and write to the store.</dd>
</dl>
</li>
</ul>
<a name="delete-long-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>delete</h4>
<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.html#line.238">delete</a>(long&nbsp;procId)</pre>
<div class="block">The specified procId was removed from the executor,
due to completion, abort or failure.
The store implementor should remove all the information about the specified procId.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>procId</code> - the ID of the procedure to remove.</dd>
</dl>
</li>
</ul>
<a name="delete-org.apache.hadoop.hbase.procedure2.Procedure-long:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>delete</h4>
<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.html#line.246">delete</a>(<a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;?&gt;&nbsp;parentProc,
long[]&nbsp;subProcIds)</pre>
<div class="block">The parent procedure completed.
Update the state and mark all the child deleted.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>parentProc</code> - the parent procedure to serialize and write to the store.</dd>
<dd><code>subProcIds</code> - the IDs of the sub-procedure to remove.</dd>
</dl>
</li>
</ul>
<a name="delete-long:A-int-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>delete</h4>
<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.html#line.256">delete</a>(long[]&nbsp;procIds,
int&nbsp;offset,
int&nbsp;count)</pre>
<div class="block">The specified procIds were removed from the executor,
due to completion, abort or failure.
The store implementor should remove all the information about the specified procIds.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>procIds</code> - the IDs of the procedures to remove.</dd>
<dd><code>offset</code> - the array offset from where to start to delete</dd>
<dd><code>count</code> - the number of IDs to delete</dd>
</dl>
</li>
</ul>
<a name="cleanup--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>cleanup</h4>
<pre>default&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/procedure2/store/ProcedureStore.html#line.264">cleanup</a>()</pre>
<div class="block">Will be called by the framework to give the store a chance to do some clean up works.
<p/>
Notice that this is for periodical clean up work, not for the clean up after close, if you want
to close the store just call the <a href="../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStore.html#stop-boolean-"><code>stop(boolean)</code></a> method above.</div>
</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/ProcedureStore.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/store/NoopProcedureStore.html" title="class in org.apache.hadoop.hbase.procedure2.store"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../org/apache/hadoop/hbase/procedure2/store/ProcedureStore.ProcedureIterator.html" title="interface in org.apache.hadoop.hbase.procedure2.store"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/procedure2/store/ProcedureStore.html" target="_top">Frames</a></li>
<li><a href="ProcedureStore.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2021 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</body>
</html>