blob: dcb03950a1c8a8d58c337b16b232d46bd8df70ee [file] [log] [blame]
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>ChoreService (Apache HBase 4.0.0-alpha-1-SNAPSHOT API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: package: org.apache.hadoop.hbase, class: ChoreService">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../script-dir/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
<script type="text/javascript" src="../../../../script-dir/jquery-3.6.1.min.js"></script>
<script type="text/javascript" src="../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="class-declaration-page">
<script type="text/javascript">var evenRowColor = "even-row-color";
var oddRowColor = "odd-row-color";
var tableTab = "table-tab";
var activeTableTab = "active-table-tab";
var pathtoroot = "../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top">
<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
<li><a href="../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="nav-bar-cell1-rev">Class</li>
<li><a href="class-use/ChoreService.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#class">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div>
<ul class="sub-nav-list">
<li>Summary:&nbsp;</li>
<li><a href="#nested-class-summary">Nested</a>&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="sub-nav-list">
<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>
<div class="nav-list-search"><label for="search-input">SEARCH:</label>
<input type="text" id="search-input" value="search" disabled="disabled">
<input type="reset" id="reset-button" value="reset" disabled="disabled">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">org.apache.hadoop.hbase</a></div>
<h1 title="Class ChoreService" class="title">Class ChoreService</h1>
</div>
<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
<div class="inheritance">org.apache.hadoop.hbase.ChoreService</div>
</div>
<section class="class-description" id="class-description">
<hr>
<div class="type-signature"><span class="annotations">@Private
</span><span class="modifiers">public class </span><span class="element-name"><a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line-53">ChoreService</a></span>
<span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></span></div>
<div class="block">ChoreService is a service that can be used to schedule instances of <a href="ScheduledChore.html" title="class in org.apache.hadoop.hbase"><code>ScheduledChore</code></a> to run
periodically while sharing threads. The ChoreService is backed by a
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/concurrent/ScheduledThreadPoolExecutor.html" title="class or interface in java.util.concurrent" class="external-link"><code>ScheduledThreadPoolExecutor</code></a> whose core pool size changes dynamically depending on the
number of <a href="ScheduledChore.html" title="class in org.apache.hadoop.hbase"><code>ScheduledChore</code></a> scheduled. All of the threads in the core thread pool of the
underlying <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/concurrent/ScheduledThreadPoolExecutor.html" title="class or interface in java.util.concurrent" class="external-link"><code>ScheduledThreadPoolExecutor</code></a> are set to be daemon threads.
<p>
The ChoreService provides the ability to schedule, cancel, and trigger instances of
<a href="ScheduledChore.html" title="class in org.apache.hadoop.hbase"><code>ScheduledChore</code></a>. The ChoreService also provides the ability to check on the status of
scheduled chores. The number of threads used by the ChoreService changes based on the scheduling
load and whether or not the scheduled chores are executing on time. As more chores are scheduled,
there may be a need to increase the number of threads if it is noticed that chores are no longer
meeting their scheduled start times. On the other hand, as chores are cancelled, an attempt is
made to reduce the number of running threads to see if chores can still meet their start times
with a smaller thread pool.
<p>
When finished with a ChoreService it is good practice to call <a href="#shutdown()"><code>shutdown()</code></a>.
Calling this method ensures that all scheduled chores are cancelled and cleaned up properly.</div>
</section>
<section class="summary">
<ul class="summary-list">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<li>
<section class="nested-class-summary" id="nested-class-summary">
<h2>Nested Class Summary</h2>
<div class="caption"><span>Nested Classes</span></div>
<div class="summary-table three-column-summary">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Class</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><code>(package private) static class&nbsp;</code></div>
<div class="col-second even-row-color"><code><a href="ChoreService.ChoreServiceThreadFactory.html" class="type-name-link" title="class in org.apache.hadoop.hbase">ChoreService.ChoreServiceThreadFactory</a></code></div>
<div class="col-last even-row-color">
<div class="block">Custom ThreadFactory used with the ScheduledThreadPoolExecutor so that all the threads are
daemon threads, and thus, don't prevent the JVM from shutting down</div>
</div>
</div>
</section>
</li>
<!-- =========== FIELD SUMMARY =========== -->
<li>
<section class="field-summary" id="field-summary">
<h2>Field Summary</h2>
<div class="caption"><span>Fields</span></div>
<div class="summary-table three-column-summary">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Field</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><code>static final <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
<div class="col-second even-row-color"><code><a href="#CHORE_SERVICE_INITIAL_POOL_SIZE" class="member-name-link">CHORE_SERVICE_INITIAL_POOL_SIZE</a></code></div>
<div class="col-last even-row-color">
<div class="block">The initial number of threads in the core pool for the <a href="ChoreService.html" title="class in org.apache.hadoop.hbase"><code>ChoreService</code></a>.</div>
</div>
<div class="col-first odd-row-color"><code>private final <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/HashMap.html" title="class or interface in java.util" class="external-link">HashMap</a>&lt;<a href="ScheduledChore.html" title="class in org.apache.hadoop.hbase">ScheduledChore</a>,<wbr><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Boolean.html" title="class or interface in java.lang" class="external-link">Boolean</a>&gt;</code></div>
<div class="col-second odd-row-color"><code><a href="#choresMissingStartTime" class="member-name-link">choresMissingStartTime</a></code></div>
<div class="col-last odd-row-color">
<div class="block">Maps chores to Booleans which indicate whether or not a chore has caused an increase in the
core pool size of the ScheduledThreadPoolExecutor.</div>
</div>
<div class="col-first even-row-color"><code>private final <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
<div class="col-second even-row-color"><code><a href="#coreThreadPoolPrefix" class="member-name-link">coreThreadPoolPrefix</a></code></div>
<div class="col-last even-row-color">
<div class="block">The coreThreadPoolPrefix is the prefix that will be applied to all threads within the
ScheduledThreadPoolExecutor.</div>
</div>
<div class="col-first odd-row-color"><code>static final int</code></div>
<div class="col-second odd-row-color"><code><a href="#DEFAULT_CHORE_SERVICE_INITIAL_POOL_SIZE" class="member-name-link">DEFAULT_CHORE_SERVICE_INITIAL_POOL_SIZE</a></code></div>
<div class="col-last odd-row-color">&nbsp;</div>
<div class="col-first even-row-color"><code>private static final org.slf4j.Logger</code></div>
<div class="col-second even-row-color"><code><a href="#LOG" class="member-name-link">LOG</a></code></div>
<div class="col-last even-row-color">&nbsp;</div>
<div class="col-first odd-row-color"><code>static final int</code></div>
<div class="col-second odd-row-color"><code><a href="#MIN_CORE_POOL_SIZE" class="member-name-link">MIN_CORE_POOL_SIZE</a></code></div>
<div class="col-last odd-row-color">
<div class="block">The minimum number of threads in the core pool of the underlying ScheduledThreadPoolExecutor</div>
</div>
<div class="col-first even-row-color"><code>private final <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/HashMap.html" title="class or interface in java.util" class="external-link">HashMap</a>&lt;<a href="ScheduledChore.html" title="class in org.apache.hadoop.hbase">ScheduledChore</a>,<wbr><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/concurrent/ScheduledFuture.html" title="class or interface in java.util.concurrent" class="external-link">ScheduledFuture</a>&lt;?&gt;&gt;</code></div>
<div class="col-second even-row-color"><code><a href="#scheduledChores" class="member-name-link">scheduledChores</a></code></div>
<div class="col-last even-row-color">
<div class="block">Maps chores to their futures.</div>
</div>
<div class="col-first odd-row-color"><code>private final <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/concurrent/ScheduledThreadPoolExecutor.html" title="class or interface in java.util.concurrent" class="external-link">ScheduledThreadPoolExecutor</a></code></div>
<div class="col-second odd-row-color"><code><a href="#scheduler" class="member-name-link">scheduler</a></code></div>
<div class="col-last odd-row-color">
<div class="block">This thread pool is used to schedule all of the Chores</div>
</div>
</div>
</section>
</li>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<li>
<section class="constructor-summary" id="constructor-summary">
<h2>Constructor Summary</h2>
<div class="caption"><span>Constructors</span></div>
<div class="summary-table two-column-summary">
<div class="table-header col-first">Constructor</div>
<div class="table-header col-last">Description</div>
<div class="col-constructor-name even-row-color"><code><a href="#%3Cinit%3E(java.lang.String)" class="member-name-link">ChoreService</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;coreThreadPoolPrefix)</code></div>
<div class="col-last even-row-color">&nbsp;</div>
<div class="col-constructor-name odd-row-color"><code><a href="#%3Cinit%3E(java.lang.String,boolean)" class="member-name-link">ChoreService</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;coreThreadPoolPrefix,
boolean&nbsp;jitter)</code></div>
<div class="col-last odd-row-color">&nbsp;</div>
<div class="col-constructor-name even-row-color"><code><a href="#%3Cinit%3E(java.lang.String,int,boolean)" class="member-name-link">ChoreService</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;coreThreadPoolPrefix,
int&nbsp;corePoolSize,
boolean&nbsp;jitter)</code></div>
<div class="col-last even-row-color">&nbsp;</div>
</div>
</section>
</li>
<!-- ========== METHOD SUMMARY =========== -->
<li>
<section class="method-summary" id="method-summary">
<h2>Method Summary</h2>
<div id="method-summary-table">
<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div>
<div id="method-summary-table.tabpanel" role="tabpanel">
<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Method</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>private void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#cancelAllChores(boolean)" class="member-name-link">cancelAllChores</a><wbr>(boolean&nbsp;mayInterruptIfRunning)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>(package private) void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#cancelChore(org.apache.hadoop.hbase.ScheduledChore)" class="member-name-link">cancelChore</a><wbr>(<a href="ScheduledChore.html" title="class in org.apache.hadoop.hbase">ScheduledChore</a>&nbsp;chore)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Cancel any ongoing schedules that this chore has with the implementer of this interface.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>(package private) void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#cancelChore(org.apache.hadoop.hbase.ScheduledChore,boolean)" class="member-name-link">cancelChore</a><wbr>(<a href="ScheduledChore.html" title="class in org.apache.hadoop.hbase">ScheduledChore</a>&nbsp;chore,
boolean&nbsp;mayInterruptIfRunning)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Cancel any ongoing schedules that this chore has with the implementer of this interface.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>(package private) int</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getCorePoolSize()" class="member-name-link">getCorePoolSize</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns number of threads in the core pool of the underlying ScheduledThreadPoolExecutor</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>(package private) int</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getNumberOfChoresMissingStartTime()" class="member-name-link">getNumberOfChoresMissingStartTime</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Return number of chores that this service currently has scheduled that are missing their
scheduled start time</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>(package private) int</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getNumberOfScheduledChores()" class="member-name-link">getNumberOfScheduledChores</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns number of chores that this service currently has scheduled</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#isChoreScheduled(org.apache.hadoop.hbase.ScheduledChore)" class="member-name-link">isChoreScheduled</a><wbr>(<a href="ScheduledChore.html" title="class in org.apache.hadoop.hbase">ScheduledChore</a>&nbsp;chore)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns true when the chore is scheduled with the implementer of this interface</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#isShutdown()" class="member-name-link">isShutdown</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns true when the service is shutdown and thus cannot be used anymore</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#isTerminated()" class="member-name-link">isTerminated</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns true when the service is shutdown and all threads have terminated</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>(package private) void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#onChoreMissedStartTime(org.apache.hadoop.hbase.ScheduledChore)" class="member-name-link">onChoreMissedStartTime</a><wbr>(<a href="ScheduledChore.html" title="class in org.apache.hadoop.hbase">ScheduledChore</a>&nbsp;chore)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">A callback that tells the implementer of this interface that one of the scheduled chores is
missing its start time.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>private void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#printChoreDetails(java.lang.String,org.apache.hadoop.hbase.ScheduledChore)" class="member-name-link">printChoreDetails</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;header,
<a href="ScheduledChore.html" title="class in org.apache.hadoop.hbase">ScheduledChore</a>&nbsp;chore)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Prints a summary of important details about the chore.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>private void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#printChoreServiceDetails(java.lang.String)" class="member-name-link">printChoreServiceDetails</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;header)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Prints a summary of important details about the service.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>private void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#requestCorePoolDecrease()" class="member-name-link">requestCorePoolDecrease</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Represents a request to decrease the number of core pool threads.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>private boolean</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#requestCorePoolIncrease()" class="member-name-link">requestCorePoolIncrease</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Represents a request to increase the number of core pool threads.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>private void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#rescheduleChore(org.apache.hadoop.hbase.ScheduledChore,boolean)" class="member-name-link">rescheduleChore</a><wbr>(<a href="ScheduledChore.html" title="class in org.apache.hadoop.hbase">ScheduledChore</a>&nbsp;chore,
boolean&nbsp;immediately)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#scheduleChore(org.apache.hadoop.hbase.ScheduledChore)" class="member-name-link">scheduleChore</a><wbr>(<a href="ScheduledChore.html" title="class in org.apache.hadoop.hbase">ScheduledChore</a>&nbsp;chore)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Schedule a chore.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#shutdown()" class="member-name-link">shutdown</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Shut down the service.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>(package private) void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#triggerNow(org.apache.hadoop.hbase.ScheduledChore)" class="member-name-link">triggerNow</a><wbr>(<a href="ScheduledChore.html" title="class in org.apache.hadoop.hbase">ScheduledChore</a>&nbsp;chore)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">This method tries to execute the chore immediately.</div>
</div>
</div>
</div>
</div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
<code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#finalize()" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#toString()" title="class or interface in java.lang" class="external-link">toString</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="details-list">
<!-- ============ FIELD DETAIL =========== -->
<li>
<section class="field-details" id="field-detail">
<h2>Field Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="LOG">
<h3>LOG</h3>
<div class="member-signature"><span class="modifiers">private static final</span>&nbsp;<span class="return-type">org.slf4j.Logger</span>&nbsp;<span class="element-name"><a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line-55">LOG</a></span></div>
</section>
</li>
<li>
<section class="detail" id="MIN_CORE_POOL_SIZE">
<h3>MIN_CORE_POOL_SIZE</h3>
<div class="member-signature"><span class="annotations">@Private
</span><span class="modifiers">public static final</span>&nbsp;<span class="return-type">int</span>&nbsp;<span class="element-name"><a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line-60">MIN_CORE_POOL_SIZE</a></span></div>
<div class="block">The minimum number of threads in the core pool of the underlying ScheduledThreadPoolExecutor</div>
<dl class="notes">
<dt>See Also:</dt>
<dd>
<ul class="see-list">
<li><a href="../../../../constant-values.html#org.apache.hadoop.hbase.ChoreService.MIN_CORE_POOL_SIZE">Constant Field Values</a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="CHORE_SERVICE_INITIAL_POOL_SIZE">
<h3>CHORE_SERVICE_INITIAL_POOL_SIZE</h3>
<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name"><a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line-65">CHORE_SERVICE_INITIAL_POOL_SIZE</a></span></div>
<div class="block">The initial number of threads in the core pool for the <a href="ChoreService.html" title="class in org.apache.hadoop.hbase"><code>ChoreService</code></a>.</div>
<dl class="notes">
<dt>See Also:</dt>
<dd>
<ul class="see-list">
<li><a href="../../../../constant-values.html#org.apache.hadoop.hbase.ChoreService.CHORE_SERVICE_INITIAL_POOL_SIZE">Constant Field Values</a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="DEFAULT_CHORE_SERVICE_INITIAL_POOL_SIZE">
<h3>DEFAULT_CHORE_SERVICE_INITIAL_POOL_SIZE</h3>
<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type">int</span>&nbsp;<span class="element-name"><a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line-67">DEFAULT_CHORE_SERVICE_INITIAL_POOL_SIZE</a></span></div>
<dl class="notes">
<dt>See Also:</dt>
<dd>
<ul class="see-list">
<li><a href="../../../../constant-values.html#org.apache.hadoop.hbase.ChoreService.DEFAULT_CHORE_SERVICE_INITIAL_POOL_SIZE">Constant Field Values</a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="scheduler">
<h3>scheduler</h3>
<div class="member-signature"><span class="modifiers">private final</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/concurrent/ScheduledThreadPoolExecutor.html" title="class or interface in java.util.concurrent" class="external-link">ScheduledThreadPoolExecutor</a></span>&nbsp;<span class="element-name"><a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line-72">scheduler</a></span></div>
<div class="block">This thread pool is used to schedule all of the Chores</div>
</section>
</li>
<li>
<section class="detail" id="scheduledChores">
<h3>scheduledChores</h3>
<div class="member-signature"><span class="modifiers">private final</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/HashMap.html" title="class or interface in java.util" class="external-link">HashMap</a>&lt;<a href="ScheduledChore.html" title="class in org.apache.hadoop.hbase">ScheduledChore</a>,<wbr><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/concurrent/ScheduledFuture.html" title="class or interface in java.util.concurrent" class="external-link">ScheduledFuture</a>&lt;?&gt;&gt;</span>&nbsp;<span class="element-name"><a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line-77">scheduledChores</a></span></div>
<div class="block">Maps chores to their futures. Futures are used to control a chore's schedule</div>
</section>
</li>
<li>
<section class="detail" id="choresMissingStartTime">
<h3>choresMissingStartTime</h3>
<div class="member-signature"><span class="modifiers">private final</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/HashMap.html" title="class or interface in java.util" class="external-link">HashMap</a>&lt;<a href="ScheduledChore.html" title="class in org.apache.hadoop.hbase">ScheduledChore</a>,<wbr><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Boolean.html" title="class or interface in java.lang" class="external-link">Boolean</a>&gt;</span>&nbsp;<span class="element-name"><a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line-85">choresMissingStartTime</a></span></div>
<div class="block">Maps chores to Booleans which indicate whether or not a chore has caused an increase in the
core pool size of the ScheduledThreadPoolExecutor. Each chore should only be allowed to
increase the core pool size by 1 (otherwise a single long running chore whose execution is
longer than its period would be able to spawn too many threads).</div>
</section>
</li>
<li>
<section class="detail" id="coreThreadPoolPrefix">
<h3>coreThreadPoolPrefix</h3>
<div class="member-signature"><span class="modifiers">private final</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name"><a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line-93">coreThreadPoolPrefix</a></span></div>
<div class="block">The coreThreadPoolPrefix is the prefix that will be applied to all threads within the
ScheduledThreadPoolExecutor. The prefix is typically related to the Server that the service is
running on. The prefix is useful because it allows us to monitor how the thread pool of a
particular service changes over time VIA thread dumps.</div>
</section>
</li>
</ul>
</section>
</li>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<li>
<section class="constructor-details" id="constructor-detail">
<h2>Constructor Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="&lt;init&gt;(java.lang.String)">
<h3>ChoreService</h3>
<div class="member-signature"><span class="annotations">@Private
</span><span class="modifiers">public</span>&nbsp;<span class="element-name"><a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line-99">ChoreService</a></span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;coreThreadPoolPrefix)</span></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>coreThreadPoolPrefix</code> - Prefix that will be applied to the Thread name of all threads
spawned by this service</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="&lt;init&gt;(java.lang.String,boolean)">
<h3>ChoreService</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name"><a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line-110">ChoreService</a></span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;coreThreadPoolPrefix,
boolean&nbsp;jitter)</span></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>coreThreadPoolPrefix</code> - Prefix that will be applied to the Thread name of all threads
spawned by this service</dd>
<dd><code>jitter</code> - Should chore service add some jitter for all of the scheduled
chores. When set to true this will add -10% to 10% jitter.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="&lt;init&gt;(java.lang.String,int,boolean)">
<h3>ChoreService</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name"><a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line-124">ChoreService</a></span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;coreThreadPoolPrefix,
int&nbsp;corePoolSize,
boolean&nbsp;jitter)</span></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>coreThreadPoolPrefix</code> - Prefix that will be applied to the Thread name of all threads
spawned by this service</dd>
<dd><code>corePoolSize</code> - The initial size to set the core pool of the
ScheduledThreadPoolExecutor to during initialization. The default
size is 1, but specifying a larger size may be beneficial if you
know that 1 thread will not be enough.</dd>
<dd><code>jitter</code> - Should chore service add some jitter for all of the scheduled
chores. When set to true this will add -10% to 10% jitter.</dd>
</dl>
</section>
</li>
</ul>
</section>
</li>
<!-- ============ METHOD DETAIL ========== -->
<li>
<section class="method-details" id="method-detail">
<h2>Method Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="scheduleChore(org.apache.hadoop.hbase.ScheduledChore)">
<h3>scheduleChore</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name"><a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line-150">scheduleChore</a></span><wbr><span class="parameters">(<a href="ScheduledChore.html" title="class in org.apache.hadoop.hbase">ScheduledChore</a>&nbsp;chore)</span></div>
<div class="block">Schedule a chore.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>chore</code> - Chore to be scheduled. If the chore is already scheduled with another ChoreService
instance, that schedule will be cancelled (i.e. a Chore can only ever be scheduled
with a single ChoreService instance).</dd>
<dt>Returns:</dt>
<dd>true when the chore was successfully scheduled. false when the scheduling failed
(typically occurs when a chore is scheduled during shutdown of service)</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="rescheduleChore(org.apache.hadoop.hbase.ScheduledChore,boolean)">
<h3>rescheduleChore</h3>
<div class="member-signature"><span class="modifiers">private</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name"><a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line-191">rescheduleChore</a></span><wbr><span class="parameters">(<a href="ScheduledChore.html" title="class in org.apache.hadoop.hbase">ScheduledChore</a>&nbsp;chore,
boolean&nbsp;immediately)</span></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>chore</code> - The Chore to be rescheduled. If the chore is not scheduled with this ChoreService
yet then this call is equivalent to a call to scheduleChore.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="cancelChore(org.apache.hadoop.hbase.ScheduledChore)">
<h3>cancelChore</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name"><a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line-209">cancelChore</a></span><wbr><span class="parameters">(<a href="ScheduledChore.html" title="class in org.apache.hadoop.hbase">ScheduledChore</a>&nbsp;chore)</span></div>
<div class="block">Cancel any ongoing schedules that this chore has with the implementer of this interface.
<p/>
Call <a href="ScheduledChore.html#cancel()"><code>ScheduledChore.cancel()</code></a> to cancel a <a href="ScheduledChore.html" title="class in org.apache.hadoop.hbase"><code>ScheduledChore</code></a>, in
<a href="ScheduledChore.html#cancel()"><code>ScheduledChore.cancel()</code></a> method we will call this method to remove the
<a href="ScheduledChore.html" title="class in org.apache.hadoop.hbase"><code>ScheduledChore</code></a> from this <a href="ChoreService.html" title="class in org.apache.hadoop.hbase"><code>ChoreService</code></a>.</div>
</section>
</li>
<li>
<section class="detail" id="cancelChore(org.apache.hadoop.hbase.ScheduledChore,boolean)">
<h3>cancelChore</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name"><a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line-222">cancelChore</a></span><wbr><span class="parameters">(<a href="ScheduledChore.html" title="class in org.apache.hadoop.hbase">ScheduledChore</a>&nbsp;chore,
boolean&nbsp;mayInterruptIfRunning)</span></div>
<div class="block">Cancel any ongoing schedules that this chore has with the implementer of this interface.
<p/>
Call <a href="ScheduledChore.html#cancel(boolean)"><code>ScheduledChore.cancel(boolean)</code></a> to cancel a <a href="ScheduledChore.html" title="class in org.apache.hadoop.hbase"><code>ScheduledChore</code></a>, in
<a href="ScheduledChore.html#cancel(boolean)"><code>ScheduledChore.cancel(boolean)</code></a> method we will call this method to remove the
<a href="ScheduledChore.html" title="class in org.apache.hadoop.hbase"><code>ScheduledChore</code></a> from this <a href="ChoreService.html" title="class in org.apache.hadoop.hbase"><code>ChoreService</code></a>.</div>
</section>
</li>
<li>
<section class="detail" id="isChoreScheduled(org.apache.hadoop.hbase.ScheduledChore)">
<h3>isChoreScheduled</h3>
<div class="member-signature"><span class="annotations">@Private
</span><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name"><a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line-240">isChoreScheduled</a></span><wbr><span class="parameters">(<a href="ScheduledChore.html" title="class in org.apache.hadoop.hbase">ScheduledChore</a>&nbsp;chore)</span></div>
<div class="block">Returns true when the chore is scheduled with the implementer of this interface</div>
</section>
</li>
<li>
<section class="detail" id="triggerNow(org.apache.hadoop.hbase.ScheduledChore)">
<h3>triggerNow</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name"><a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line-250">triggerNow</a></span><wbr><span class="parameters">(<a href="ScheduledChore.html" title="class in org.apache.hadoop.hbase">ScheduledChore</a>&nbsp;chore)</span></div>
<div class="block">This method tries to execute the chore immediately. If the chore is executing at the time of
this call, the chore will begin another execution as soon as the current execution finishes</div>
</section>
</li>
<li>
<section class="detail" id="getNumberOfScheduledChores()">
<h3>getNumberOfScheduledChores</h3>
<div class="member-signature"><span class="return-type">int</span>&nbsp;<span class="element-name"><a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line-258">getNumberOfScheduledChores</a></span>()</div>
<div class="block">Returns number of chores that this service currently has scheduled</div>
</section>
</li>
<li>
<section class="detail" id="getNumberOfChoresMissingStartTime()">
<h3>getNumberOfChoresMissingStartTime</h3>
<div class="member-signature"><span class="return-type">int</span>&nbsp;<span class="element-name"><a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line-266">getNumberOfChoresMissingStartTime</a></span>()</div>
<div class="block">Return number of chores that this service currently has scheduled that are missing their
scheduled start time</div>
</section>
</li>
<li>
<section class="detail" id="getCorePoolSize()">
<h3>getCorePoolSize</h3>
<div class="member-signature"><span class="return-type">int</span>&nbsp;<span class="element-name"><a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line-271">getCorePoolSize</a></span>()</div>
<div class="block">Returns number of threads in the core pool of the underlying ScheduledThreadPoolExecutor</div>
</section>
</li>
<li>
<section class="detail" id="requestCorePoolIncrease()">
<h3>requestCorePoolIncrease</h3>
<div class="member-signature"><span class="modifiers">private</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name"><a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line-303">requestCorePoolIncrease</a></span>()</div>
<div class="block">Represents a request to increase the number of core pool threads. Typically a request
originates from the fact that the current core pool size is not sufficient to service all of
the currently running Chores</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>true when the request to increase the core pool size succeeds</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="requestCorePoolDecrease()">
<h3>requestCorePoolDecrease</h3>
<div class="member-signature"><span class="modifiers">private</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name"><a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line-320">requestCorePoolDecrease</a></span>()</div>
<div class="block">Represents a request to decrease the number of core pool threads. Typically a request
originates from the fact that the current core pool size is more than sufficient to service the
running Chores.</div>
</section>
</li>
<li>
<section class="detail" id="onChoreMissedStartTime(org.apache.hadoop.hbase.ScheduledChore)">
<h3>onChoreMissedStartTime</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name"><a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line-335">onChoreMissedStartTime</a></span><wbr><span class="parameters">(<a href="ScheduledChore.html" title="class in org.apache.hadoop.hbase">ScheduledChore</a>&nbsp;chore)</span></div>
<div class="block">A callback that tells the implementer of this interface that one of the scheduled chores is
missing its start time. The implication of a chore missing its start time is that the service's
current means of scheduling may not be sufficient to handle the number of ongoing chores (the
other explanation is that the chore's execution time is greater than its scheduled period). The
service should try to increase its concurrency when this callback is received.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>chore</code> - The chore that missed its start time</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="shutdown()">
<h3>shutdown</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name"><a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line-365">shutdown</a></span>()</div>
<div class="block">Shut down the service. Any chores that are scheduled for execution will be cancelled. Any
chores in the middle of execution will be interrupted and shutdown. This service will be
unusable after this method has been called (i.e. future scheduling attempts will fail).
<p/>
Notice that, this will only clean the chore from this ChoreService but you could still schedule
the chore with other ChoreService.</div>
</section>
</li>
<li>
<section class="detail" id="isShutdown()">
<h3>isShutdown</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name"><a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line-378">isShutdown</a></span>()</div>
<div class="block">Returns true when the service is shutdown and thus cannot be used anymore</div>
</section>
</li>
<li>
<section class="detail" id="isTerminated()">
<h3>isTerminated</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name"><a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line-383">isTerminated</a></span>()</div>
<div class="block">Returns true when the service is shutdown and all threads have terminated</div>
</section>
</li>
<li>
<section class="detail" id="cancelAllChores(boolean)">
<h3>cancelAllChores</h3>
<div class="member-signature"><span class="modifiers">private</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name"><a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line-387">cancelAllChores</a></span><wbr><span class="parameters">(boolean&nbsp;mayInterruptIfRunning)</span></div>
</section>
</li>
<li>
<section class="detail" id="printChoreDetails(java.lang.String,org.apache.hadoop.hbase.ScheduledChore)">
<h3>printChoreDetails</h3>
<div class="member-signature"><span class="modifiers">private</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name"><a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line-399">printChoreDetails</a></span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;header,
<a href="ScheduledChore.html" title="class in org.apache.hadoop.hbase">ScheduledChore</a>&nbsp;chore)</span></div>
<div class="block">Prints a summary of important details about the chore. Used for debugging purposes</div>
</section>
</li>
<li>
<section class="detail" id="printChoreServiceDetails(java.lang.String)">
<h3>printChoreServiceDetails</h3>
<div class="member-signature"><span class="modifiers">private</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name"><a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line-415">printChoreServiceDetails</a></span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;header)</span></div>
<div class="block">Prints a summary of important details about the service. Used for debugging purposes</div>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
<!-- ========= END OF CLASS DATA ========= -->
</main>
<footer role="contentinfo">
<hr>
<p class="legal-copy"><small>Copyright &#169; 2007&#x2013;2020 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</footer>
</div>
</div>
</body>
</html>