blob: 8abfe4b92de15b904ae548da35f3245bfe07b9bc [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>ProcedureMember (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="ProcedureMember (Apache HBase 3.0.0-alpha-2-SNAPSHOT API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":9,"i5":9,"i6":10,"i7":10,"i8":10,"i9":10};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/ProcedureMember.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/procedure/ProcedureManagerHost.html" title="class in org.apache.hadoop.hbase.procedure"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../org/apache/hadoop/hbase/procedure/ProcedureMemberRpcs.html" title="interface in org.apache.hadoop.hbase.procedure"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/hadoop/hbase/procedure/ProcedureMember.html" target="_top">Frames</a></li>
<li><a href="ProcedureMember.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.hadoop.hbase.procedure</div>
<h2 title="Class ProcedureMember" class="title">Class ProcedureMember</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.procedure.ProcedureMember</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/io/Closeable.html?is-external=true" title="class or interface in java.io">Closeable</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/AutoCloseable.html?is-external=true" title="class or interface in java.lang">AutoCloseable</a></dd>
</dl>
<hr>
<br>
<pre>@InterfaceAudience.Private
public class <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure/ProcedureMember.html#line.44">ProcedureMember</a>
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/io/Closeable.html?is-external=true" title="class or interface in java.io">Closeable</a></pre>
<div class="block">Process to kick off and manage a running <a href="../../../../../org/apache/hadoop/hbase/procedure/Subprocedure.html" title="class in org.apache.hadoop.hbase.procedure"><code>Subprocedure</code></a> on a member. This is the
specialized part of a <a href="../../../../../org/apache/hadoop/hbase/procedure/Procedure.html" title="class in org.apache.hadoop.hbase.procedure"><code>Procedure</code></a> that actually does procedure type-specific work
and reports back to the coordinator as it completes each phase.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Field and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/procedure/SubprocedureFactory.html" title="interface in org.apache.hadoop.hbase.procedure">SubprocedureFactory</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure/ProcedureMember.html#builder">builder</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>(package private) static long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure/ProcedureMember.html#KEEP_ALIVE_MILLIS_DEFAULT">KEEP_ALIVE_MILLIS_DEFAULT</a></span></code>&nbsp;</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/procedure/ProcedureMember.html#LOG">LOG</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure/ProcedureMember.html#pool">pool</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/procedure/ProcedureMemberRpcs.html" title="interface in org.apache.hadoop.hbase.procedure">ProcedureMemberRpcs</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure/ProcedureMember.html#rpcs">rpcs</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentMap.html?is-external=true" title="class or interface in java.util.concurrent">ConcurrentMap</a>&lt;<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="../../../../../org/apache/hadoop/hbase/procedure/Subprocedure.html" title="class in org.apache.hadoop.hbase.procedure">Subprocedure</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure/ProcedureMember.html#subprocs">subprocs</a></span></code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure/ProcedureMember.html#ProcedureMember-org.apache.hadoop.hbase.procedure.ProcedureMemberRpcs-java.util.concurrent.ThreadPoolExecutor-org.apache.hadoop.hbase.procedure.SubprocedureFactory-">ProcedureMember</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure/ProcedureMemberRpcs.html" title="interface in org.apache.hadoop.hbase.procedure">ProcedureMemberRpcs</a>&nbsp;rpcs,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ThreadPoolExecutor.html?is-external=true" title="class or interface in java.util.concurrent">ThreadPoolExecutor</a>&nbsp;pool,
<a href="../../../../../org/apache/hadoop/hbase/procedure/SubprocedureFactory.html" title="interface in org.apache.hadoop.hbase.procedure">SubprocedureFactory</a>&nbsp;factory)</code>
<div class="block">Instantiate a new ProcedureMember.</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="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure/ProcedureMember.html#close--">close</a></span>()</code>
<div class="block">Best effort attempt to close the threadpool via Thread.interrupt.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>(package private) boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure/ProcedureMember.html#closeAndWait-long-">closeAndWait</a></span>(long&nbsp;timeoutMs)</code>
<div class="block">Shutdown the threadpool, and wait for upto timeoutMs millis before bailing</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/procedure/ProcedureMember.html#controllerConnectionFailure-java.lang.String-java.lang.Throwable-java.lang.String-">controllerConnectionFailure</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
<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>&nbsp;cause,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;procName)</code>
<div class="block">The connection to the rest of the procedure group (member and coordinator) has been
broken/lost/failed.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/procedure/Subprocedure.html" title="class in org.apache.hadoop.hbase.procedure">Subprocedure</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure/ProcedureMember.html#createSubprocedure-java.lang.String-byte:A-">createSubprocedure</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;opName,
byte[]&nbsp;data)</code>
<div class="block">This is separated from execution so that we can detect and handle the case where the
subprocedure is invalid and inactionable due to bad info (like DISABLED snapshot type being
sent here)</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ThreadPoolExecutor.html?is-external=true" title="class or interface in java.util.concurrent">ThreadPoolExecutor</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure/ProcedureMember.html#defaultPool-java.lang.String-int-">defaultPool</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;memberName,
int&nbsp;procThreads)</code>
<div class="block">Default thread pool for the procedure</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ThreadPoolExecutor.html?is-external=true" title="class or interface in java.util.concurrent">ThreadPoolExecutor</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure/ProcedureMember.html#defaultPool-java.lang.String-int-long-">defaultPool</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;memberName,
int&nbsp;procThreads,
long&nbsp;keepAliveMillis)</code>
<div class="block">Default thread pool for the procedure</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>(package private) <a href="../../../../../org/apache/hadoop/hbase/procedure/ProcedureMemberRpcs.html" title="interface in org.apache.hadoop.hbase.procedure">ProcedureMemberRpcs</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure/ProcedureMember.html#getRpcs--">getRpcs</a></span>()</code>
<div class="block">Package exposed.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure/ProcedureMember.html#receiveAbortProcedure-java.lang.String-org.apache.hadoop.hbase.errorhandling.ForeignException-">receiveAbortProcedure</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;procName,
<a href="../../../../../org/apache/hadoop/hbase/errorhandling/ForeignException.html" title="class in org.apache.hadoop.hbase.errorhandling">ForeignException</a>&nbsp;ee)</code>
<div class="block">Send abort to the specified procedure</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure/ProcedureMember.html#receivedReachedGlobalBarrier-java.lang.String-">receivedReachedGlobalBarrier</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;procName)</code>
<div class="block">Notification that procedure coordinator has reached the global barrier</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/procedure/ProcedureMember.html#submitSubprocedure-org.apache.hadoop.hbase.procedure.Subprocedure-">submitSubprocedure</a></span>(<a href="../../../../../org/apache/hadoop/hbase/procedure/Subprocedure.html" title="class in org.apache.hadoop.hbase.procedure">Subprocedure</a>&nbsp;subproc)</code>
<div class="block">Submit an subprocedure for execution.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#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#toString--" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a name="LOG">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>LOG</h4>
<pre>private static final&nbsp;org.slf4j.Logger <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure/ProcedureMember.html#line.45">LOG</a></pre>
</li>
</ul>
<a name="KEEP_ALIVE_MILLIS_DEFAULT">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>KEEP_ALIVE_MILLIS_DEFAULT</h4>
<pre>static final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure/ProcedureMember.html#line.47">KEEP_ALIVE_MILLIS_DEFAULT</a></pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.procedure.ProcedureMember.KEEP_ALIVE_MILLIS_DEFAULT">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="builder">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>builder</h4>
<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure/SubprocedureFactory.html" title="interface in org.apache.hadoop.hbase.procedure">SubprocedureFactory</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure/ProcedureMember.html#line.49">builder</a></pre>
</li>
</ul>
<a name="rpcs">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>rpcs</h4>
<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure/ProcedureMemberRpcs.html" title="interface in org.apache.hadoop.hbase.procedure">ProcedureMemberRpcs</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure/ProcedureMember.html#line.50">rpcs</a></pre>
</li>
</ul>
<a name="subprocs">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>subprocs</h4>
<pre>private final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentMap.html?is-external=true" title="class or interface in java.util.concurrent">ConcurrentMap</a>&lt;<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="../../../../../org/apache/hadoop/hbase/procedure/Subprocedure.html" title="class in org.apache.hadoop.hbase.procedure">Subprocedure</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure/ProcedureMember.html#line.52">subprocs</a></pre>
</li>
</ul>
<a name="pool">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>pool</h4>
<pre>private final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/procedure/ProcedureMember.html#line.54">pool</a></pre>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="ProcedureMember-org.apache.hadoop.hbase.procedure.ProcedureMemberRpcs-java.util.concurrent.ThreadPoolExecutor-org.apache.hadoop.hbase.procedure.SubprocedureFactory-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>ProcedureMember</h4>
<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure/ProcedureMember.html#line.63">ProcedureMember</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure/ProcedureMemberRpcs.html" title="interface in org.apache.hadoop.hbase.procedure">ProcedureMemberRpcs</a>&nbsp;rpcs,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ThreadPoolExecutor.html?is-external=true" title="class or interface in java.util.concurrent">ThreadPoolExecutor</a>&nbsp;pool,
<a href="../../../../../org/apache/hadoop/hbase/procedure/SubprocedureFactory.html" title="interface in org.apache.hadoop.hbase.procedure">SubprocedureFactory</a>&nbsp;factory)</pre>
<div class="block">Instantiate a new ProcedureMember. This is a slave that executes subprocedures.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>rpcs</code> - controller used to send notifications to the procedure coordinator</dd>
<dd><code>pool</code> - thread pool to submit subprocedures</dd>
<dd><code>factory</code> - class that creates instances of a subprocedure.</dd>
</dl>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="defaultPool-java.lang.String-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>defaultPool</h4>
<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ThreadPoolExecutor.html?is-external=true" title="class or interface in java.util.concurrent">ThreadPoolExecutor</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure/ProcedureMember.html#line.76">defaultPool</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;memberName,
int&nbsp;procThreads)</pre>
<div class="block">Default thread pool for the procedure</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>memberName</code> - </dd>
<dd><code>procThreads</code> - the maximum number of threads to allow in the pool</dd>
</dl>
</li>
</ul>
<a name="defaultPool-java.lang.String-int-long-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>defaultPool</h4>
<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ThreadPoolExecutor.html?is-external=true" title="class or interface in java.util.concurrent">ThreadPoolExecutor</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure/ProcedureMember.html#line.87">defaultPool</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;memberName,
int&nbsp;procThreads,
long&nbsp;keepAliveMillis)</pre>
<div class="block">Default thread pool for the procedure</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>memberName</code> - </dd>
<dd><code>procThreads</code> - the maximum number of threads to allow in the pool</dd>
<dd><code>keepAliveMillis</code> - the maximum time (ms) that excess idle threads will wait for new tasks</dd>
</dl>
</li>
</ul>
<a name="getRpcs--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRpcs</h4>
<pre><a href="../../../../../org/apache/hadoop/hbase/procedure/ProcedureMemberRpcs.html" title="interface in org.apache.hadoop.hbase.procedure">ProcedureMemberRpcs</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure/ProcedureMember.html#line.100">getRpcs</a>()</pre>
<div class="block">Package exposed. Not for public use.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>reference to the Procedure member's rpcs object</dd>
</dl>
</li>
</ul>
<a name="createSubprocedure-java.lang.String-byte:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createSubprocedure</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure/Subprocedure.html" title="class in org.apache.hadoop.hbase.procedure">Subprocedure</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure/ProcedureMember.html#line.113">createSubprocedure</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;opName,
byte[]&nbsp;data)</pre>
<div class="block">This is separated from execution so that we can detect and handle the case where the
subprocedure is invalid and inactionable due to bad info (like DISABLED snapshot type being
sent here)</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>opName</code> - </dd>
<dd><code>data</code> - </dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>subprocedure</dd>
</dl>
</li>
</ul>
<a name="submitSubprocedure-org.apache.hadoop.hbase.procedure.Subprocedure-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>submitSubprocedure</h4>
<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure/ProcedureMember.html#line.125">submitSubprocedure</a>(<a href="../../../../../org/apache/hadoop/hbase/procedure/Subprocedure.html" title="class in org.apache.hadoop.hbase.procedure">Subprocedure</a>&nbsp;subproc)</pre>
<div class="block">Submit an subprocedure for execution. This starts the local acquire phase.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>subproc</code> - the subprocedure to execute.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><tt>true</tt> if the subprocedure was started correctly, <tt>false</tt> if it
could not be started. In the latter case, the subprocedure holds a reference to
the exception that caused the failure.</dd>
</dl>
</li>
</ul>
<a name="receivedReachedGlobalBarrier-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>receivedReachedGlobalBarrier</h4>
<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure/ProcedureMember.html#line.179">receivedReachedGlobalBarrier</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;procName)</pre>
<div class="block">Notification that procedure coordinator has reached the global barrier</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>procName</code> - name of the subprocedure that should start running the in-barrier phase</dd>
</dl>
</li>
</ul>
<a name="close--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>close</h4>
<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure/ProcedureMember.html#line.195">close</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">Best effort attempt to close the threadpool via Thread.interrupt.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Closeable.html?is-external=true#close--" title="class or interface in java.io">close</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Closeable.html?is-external=true" title="class or interface in java.io">Closeable</a></code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/AutoCloseable.html?is-external=true#close--" title="class or interface in java.lang">close</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/AutoCloseable.html?is-external=true" title="class or interface in java.lang">AutoCloseable</a></code></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
</dl>
</li>
</ul>
<a name="closeAndWait-long-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>closeAndWait</h4>
<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure/ProcedureMember.html#line.206">closeAndWait</a>(long&nbsp;timeoutMs)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
<div class="block">Shutdown the threadpool, and wait for upto timeoutMs millis before bailing</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>timeoutMs</code> - timeout limit in millis</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if successfully, false if bailed due to timeout.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<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="controllerConnectionFailure-java.lang.String-java.lang.Throwable-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>controllerConnectionFailure</h4>
<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure/ProcedureMember.html#line.219">controllerConnectionFailure</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
<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>&nbsp;cause,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;procName)</pre>
<div class="block">The connection to the rest of the procedure group (member and coordinator) has been
broken/lost/failed. This should fail any interested subprocedure, but not attempt to notify
other members since we cannot reach them anymore.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>message</code> - description of the error</dd>
<dd><code>cause</code> - the actual cause of the failure</dd>
<dd><code>procName</code> - the name of the procedure we'd cancel due to the error.</dd>
</dl>
</li>
</ul>
<a name="receiveAbortProcedure-java.lang.String-org.apache.hadoop.hbase.errorhandling.ForeignException-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>receiveAbortProcedure</h4>
<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/procedure/ProcedureMember.html#line.236">receiveAbortProcedure</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;procName,
<a href="../../../../../org/apache/hadoop/hbase/errorhandling/ForeignException.html" title="class in org.apache.hadoop.hbase.errorhandling">ForeignException</a>&nbsp;ee)</pre>
<div class="block">Send abort to the specified procedure</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>procName</code> - name of the procedure to about</dd>
<dd><code>ee</code> - exception information about the abort</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/ProcedureMember.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/procedure/ProcedureManagerHost.html" title="class in org.apache.hadoop.hbase.procedure"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../org/apache/hadoop/hbase/procedure/ProcedureMemberRpcs.html" title="interface in org.apache.hadoop.hbase.procedure"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/hadoop/hbase/procedure/ProcedureMember.html" target="_top">Frames</a></li>
<li><a href="ProcedureMember.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2021 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</body>
</html>