blob: dd90c76d875b2f510accebf9fd7ec7db84649498 [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>FSHLog.SyncRunner (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="FSHLog.SyncRunner (Apache HBase 3.0.0-alpha-2-SNAPSHOT API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10};
var tabs = {65535:["t0","All 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/FSHLog.SyncRunner.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/regionserver/wal/FSHLog.SafePointZigZagLatch.html" title="class in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSWALEntry.html" title="class in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/regionserver/wal/FSHLog.SyncRunner.html" target="_top">Frames</a></li>
<li><a href="FSHLog.SyncRunner.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.classes.inherited.from.class.java.lang.Thread">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="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.regionserver.wal</div>
<h2 title="Class FSHLog.SyncRunner" class="title">Class FSHLog.SyncRunner</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><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true" title="class or interface in java.lang">java.lang.Thread</a></li>
<li>
<ul class="inheritance">
<li>org.apache.hadoop.hbase.regionserver.wal.FSHLog.SyncRunner</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a></dd>
</dl>
<dl>
<dt>Enclosing class:</dt>
<dd><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSHLog.html" title="class in org.apache.hadoop.hbase.regionserver.wal">FSHLog</a></dd>
</dl>
<hr>
<br>
<pre>private class <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#line.518">FSHLog.SyncRunner</a>
extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true" title="class or interface in java.lang">Thread</a></pre>
<div class="block">Thread to runs the hdfs sync call. This call takes a while to complete. This is the longest
pole adding edits to the WAL and this must complete to be sure all edits persisted. We run
multiple threads sync'ng rather than one that just syncs in series so we have better latencies;
otherwise, an edit that arrived just after a sync started, might have to wait almost the length
of two sync invocations before it is marked done.
<p>
When the sync completes, it marks all the passed in futures done. On the other end of the sync
future is a blocked thread, usually a regionserver Handler. There may be more than one future
passed in the case where a few threads arrive at about the same time and all invoke 'sync'. In
this case we'll batch up the invocations and run one filesystem sync only for a batch of
Handler sync invocations. Do not confuse these Handler SyncFutures with the futures an
ExecutorService returns when you call submit. We have no use for these in this model. These
SyncFutures are 'artificial', something to hold the Handler until the filesystem sync
completes.</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>
<ul class="blockList">
<li class="blockList"><a name="nested.classes.inherited.from.class.java.lang.Thread">
<!-- -->
</a>
<h3>Nested classes/interfaces inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true" title="class or interface in java.lang">Thread</a></h3>
<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.State.html?is-external=true" title="class or interface in java.lang">Thread.State</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.UncaughtExceptionHandler.html?is-external=true" title="class or interface in java.lang">Thread.UncaughtExceptionHandler</a></code></li>
</ul>
</li>
</ul>
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
<caption><span>Fields</span><span class="tabEnd">&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 long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSHLog.SyncRunner.html#sequence">sequence</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/BlockingQueue.html?is-external=true" title="class or interface in java.util.concurrent">BlockingQueue</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/SyncFuture.html" title="class in org.apache.hadoop.hbase.regionserver.wal">SyncFuture</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSHLog.SyncRunner.html#syncFutures">syncFutures</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/SyncFuture.html" title="class in org.apache.hadoop.hbase.regionserver.wal">SyncFuture</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSHLog.SyncRunner.html#takeSyncFuture">takeSyncFuture</a></span></code>&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="fields.inherited.from.class.java.lang.Thread">
<!-- -->
</a>
<h3>Fields inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true" title="class or interface in java.lang">Thread</a></h3>
<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true#MAX_PRIORITY" title="class or interface in java.lang">MAX_PRIORITY</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true#MIN_PRIORITY" title="class or interface in java.lang">MIN_PRIORITY</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true#NORM_PRIORITY" title="class or interface in java.lang">NORM_PRIORITY</a></code></li>
</ul>
</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/regionserver/wal/FSHLog.SyncRunner.html#SyncRunner-java.lang.String-int-">SyncRunner</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;name,
int&nbsp;maxHandlersCount)</code>&nbsp;</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="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>(package private) boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSHLog.SyncRunner.html#areSyncFuturesReleased--">areSyncFuturesReleased</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>(package private) void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSHLog.SyncRunner.html#offer-long-org.apache.hadoop.hbase.regionserver.wal.SyncFuture:A-int-">offer</a></span>(long&nbsp;sequence,
<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/SyncFuture.html" title="class in org.apache.hadoop.hbase.regionserver.wal">SyncFuture</a>[]&nbsp;syncFutures,
int&nbsp;syncFutureCount)</code>&nbsp;</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>private int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSHLog.SyncRunner.html#releaseSyncFuture-org.apache.hadoop.hbase.regionserver.wal.SyncFuture-long-java.lang.Throwable-">releaseSyncFuture</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/SyncFuture.html" title="class in org.apache.hadoop.hbase.regionserver.wal">SyncFuture</a>&nbsp;syncFuture,
long&nbsp;currentSequence,
<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;t)</code>
<div class="block">Release the passed <code>syncFuture</code></div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>private int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSHLog.SyncRunner.html#releaseSyncFutures-long-java.lang.Throwable-">releaseSyncFutures</a></span>(long&nbsp;currentSequence,
<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;t)</code>
<div class="block">Release all SyncFutures whose sequence is <= <code>currentSequence</code>.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSHLog.SyncRunner.html#run--">run</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>private long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSHLog.SyncRunner.html#updateHighestSyncedSequence-long-">updateHighestSyncedSequence</a></span>(long&nbsp;sequence)</code>&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Thread">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true" title="class or interface in java.lang">Thread</a></h3>
<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true#activeCount--" title="class or interface in java.lang">activeCount</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true#checkAccess--" title="class or interface in java.lang">checkAccess</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.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/Thread.html?is-external=true#countStackFrames--" title="class or interface in java.lang">countStackFrames</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true#currentThread--" title="class or interface in java.lang">currentThread</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true#destroy--" title="class or interface in java.lang">destroy</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true#dumpStack--" title="class or interface in java.lang">dumpStack</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true#enumerate-java.lang.Thread:A-" title="class or interface in java.lang">enumerate</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true#getAllStackTraces--" title="class or interface in java.lang">getAllStackTraces</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true#getContextClassLoader--" title="class or interface in java.lang">getContextClassLoader</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true#getDefaultUncaughtExceptionHandler--" title="class or interface in java.lang">getDefaultUncaughtExceptionHandler</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true#getId--" title="class or interface in java.lang">getId</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true#getName--" title="class or interface in java.lang">getName</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true#getPriority--" title="class or interface in java.lang">getPriority</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true#getState--" title="class or interface in java.lang">getState</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true#getThreadGroup--" title="class or interface in java.lang">getThreadGroup</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true#getUncaughtExceptionHandler--" title="class or interface in java.lang">getUncaughtExceptionHandler</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true#holdsLock-java.lang.Object-" title="class or interface in java.lang">holdsLock</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true#interrupt--" title="class or interface in java.lang">interrupt</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true#interrupted--" title="class or interface in java.lang">interrupted</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true#isAlive--" title="class or interface in java.lang">isAlive</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true#isDaemon--" title="class or interface in java.lang">isDaemon</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true#isInterrupted--" title="class or interface in java.lang">isInterrupted</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true#join--" title="class or interface in java.lang">join</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true#join-long-" title="class or interface in java.lang">join</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true#join-long-int-" title="class or interface in java.lang">join</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true#resume--" title="class or interface in java.lang">resume</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true#setContextClassLoader-java.lang.ClassLoader-" title="class or interface in java.lang">setContextClassLoader</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true#setDaemon-boolean-" title="class or interface in java.lang">setDaemon</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true#setDefaultUncaughtExceptionHandler-java.lang.Thread.UncaughtExceptionHandler-" title="class or interface in java.lang">setDefaultUncaughtExceptionHandler</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true#setName-java.lang.String-" title="class or interface in java.lang">setName</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true#setPriority-int-" title="class or interface in java.lang">setPriority</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true#setUncaughtExceptionHandler-java.lang.Thread.UncaughtExceptionHandler-" title="class or interface in java.lang">setUncaughtExceptionHandler</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true#sleep-long-" title="class or interface in java.lang">sleep</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true#sleep-long-int-" title="class or interface in java.lang">sleep</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true#start--" title="class or interface in java.lang">start</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true#stop--" title="class or interface in java.lang">stop</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true#stop-java.lang.Throwable-" title="class or interface in java.lang">stop</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true#suspend--" title="class or interface in java.lang">suspend</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.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/Thread.html?is-external=true#yield--" title="class or interface in java.lang">yield</a></code></li>
</ul>
<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#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a name="sequence">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>sequence</h4>
<pre>private volatile&nbsp;long <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/FSHLog.SyncRunner.html#line.519">sequence</a></pre>
</li>
</ul>
<a name="syncFutures">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>syncFutures</h4>
<pre>private final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/BlockingQueue.html?is-external=true" title="class or interface in java.util.concurrent">BlockingQueue</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/SyncFuture.html" title="class in org.apache.hadoop.hbase.regionserver.wal">SyncFuture</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/FSHLog.SyncRunner.html#line.521">syncFutures</a></pre>
</li>
</ul>
<a name="takeSyncFuture">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>takeSyncFuture</h4>
<pre>private volatile&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/SyncFuture.html" title="class in org.apache.hadoop.hbase.regionserver.wal">SyncFuture</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/FSHLog.SyncRunner.html#line.522">takeSyncFuture</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="SyncRunner-java.lang.String-int-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>SyncRunner</h4>
<pre><a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/FSHLog.SyncRunner.html#line.524">SyncRunner</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;name,
int&nbsp;maxHandlersCount)</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="offer-long-org.apache.hadoop.hbase.regionserver.wal.SyncFuture:A-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>offer</h4>
<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/FSHLog.SyncRunner.html#line.542">offer</a>(long&nbsp;sequence,
<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/SyncFuture.html" title="class in org.apache.hadoop.hbase.regionserver.wal">SyncFuture</a>[]&nbsp;syncFutures,
int&nbsp;syncFutureCount)</pre>
</li>
</ul>
<a name="releaseSyncFuture-org.apache.hadoop.hbase.regionserver.wal.SyncFuture-long-java.lang.Throwable-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>releaseSyncFuture</h4>
<pre>private&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/FSHLog.SyncRunner.html#line.554">releaseSyncFuture</a>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/SyncFuture.html" title="class in org.apache.hadoop.hbase.regionserver.wal">SyncFuture</a>&nbsp;syncFuture,
long&nbsp;currentSequence,
<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;t)</pre>
<div class="block">Release the passed <code>syncFuture</code></div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Returns 1.</dd>
</dl>
</li>
</ul>
<a name="releaseSyncFutures-long-java.lang.Throwable-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>releaseSyncFutures</h4>
<pre>private&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/FSHLog.SyncRunner.html#line.569">releaseSyncFutures</a>(long&nbsp;currentSequence,
<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;t)</pre>
<div class="block">Release all SyncFutures whose sequence is <= <code>currentSequence</code>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>t</code> - May be non-null if we are processing SyncFutures because an exception was thrown.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Count of SyncFutures we let go.</dd>
</dl>
</li>
</ul>
<a name="updateHighestSyncedSequence-long-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>updateHighestSyncedSequence</h4>
<pre>private&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/FSHLog.SyncRunner.html#line.588">updateHighestSyncedSequence</a>(long&nbsp;sequence)</pre>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>sequence</code> - The sequence we ran the filesystem sync against.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Current highest synced sequence.</dd>
</dl>
</li>
</ul>
<a name="areSyncFuturesReleased--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>areSyncFuturesReleased</h4>
<pre>boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/FSHLog.SyncRunner.html#line.603">areSyncFuturesReleased</a>()</pre>
</li>
</ul>
<a name="run--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>run</h4>
<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/FSHLog.SyncRunner.html#line.611">run</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true#run--" title="class or interface in java.lang">run</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a></code></dd>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true#run--" title="class or interface in java.lang">run</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true" title="class or interface in java.lang">Thread</a></code></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/FSHLog.SyncRunner.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/regionserver/wal/FSHLog.SafePointZigZagLatch.html" title="class in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSWALEntry.html" title="class in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/regionserver/wal/FSHLog.SyncRunner.html" target="_top">Frames</a></li>
<li><a href="FSHLog.SyncRunner.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.classes.inherited.from.class.java.lang.Thread">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="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>