blob: d50628539d407a6c5e782cecebf7b4316dfe76a1 [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 (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 (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,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":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.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/FailedSyncBeforeLogCloseException.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/FSHLog.RingBufferEventHandler.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.html" target="_top">Frames</a></li>
<li><a href="FSHLog.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><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" class="title">Class FSHLog</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="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html" title="class in org.apache.hadoop.hbase.regionserver.wal">org.apache.hadoop.hbase.regionserver.wal.AbstractFSWAL</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/wal/WALProvider.Writer.html" title="interface in org.apache.hadoop.hbase.wal">WALProvider.Writer</a>&gt;</li>
<li>
<ul class="inheritance">
<li>org.apache.hadoop.hbase.regionserver.wal.FSHLog</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/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>, <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/WALFileLengthProvider.html" title="interface in org.apache.hadoop.hbase.replication.regionserver">WALFileLengthProvider</a>, <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" title="interface in org.apache.hadoop.hbase.wal">WAL</a></dd>
</dl>
<hr>
<br>
<pre>@InterfaceAudience.Private
public class <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#line.72">FSHLog</a>
extends <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html" title="class in org.apache.hadoop.hbase.regionserver.wal">AbstractFSWAL</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/wal/WALProvider.Writer.html" title="interface in org.apache.hadoop.hbase.wal">WALProvider.Writer</a>&gt;</pre>
<div class="block">The original implementation of FSWAL.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="nested.class.summary">
<!-- -->
</a>
<h3>Nested Class Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Class and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>(package private) class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSHLog.RingBufferEventHandler.html" title="class in org.apache.hadoop.hbase.regionserver.wal">FSHLog.RingBufferEventHandler</a></span></code>
<div class="block">Handler that is run by the disruptor ringbuffer consumer.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>(package private) static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSHLog.RingBufferExceptionHandler.html" title="class in org.apache.hadoop.hbase.regionserver.wal">FSHLog.RingBufferExceptionHandler</a></span></code>
<div class="block">Exception handler to pass the disruptor ringbuffer.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>(package private) static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSHLog.SafePointZigZagLatch.html" title="class in org.apache.hadoop.hbase.regionserver.wal">FSHLog.SafePointZigZagLatch</a></span></code>
<div class="block">This class is used coordinating two threads holding one thread at a 'safe point' while the
orchestrating thread does some work that requires the first thread paused: e.g.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSHLog.SyncRunner.html" title="class in org.apache.hadoop.hbase.regionserver.wal">FSHLog.SyncRunner</a></span></code>
<div class="block">Thread to runs the hdfs sync call.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.hadoop.hbase.wal.WAL">
<!-- -->
</a>
<h3>Nested classes/interfaces inherited from interface&nbsp;org.apache.hadoop.hbase.wal.<a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" title="interface in org.apache.hadoop.hbase.wal">WAL</a></h3>
<code><a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.Entry.html" title="class in org.apache.hadoop.hbase.wal">WAL.Entry</a>, <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.Reader.html" title="interface in org.apache.hadoop.hbase.wal">WAL.Reader</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 <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicInteger.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicInteger</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#closeErrorCount">closeErrorCount</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#closeErrorsTolerated">closeErrorsTolerated</a></span></code>
<div class="block">Number of log close errors tolerated before we abort</div>
</td>
</tr>
<tr class="altColor">
<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/regionserver/wal/FSHLog.html#closeExecutor">closeExecutor</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/atomic/AtomicInteger.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicInteger</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#consecutiveLogRolls">consecutiveLogRolls</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#DEFAULT_FSHLOG_WAIT_ON_SHUTDOWN_IN_SECONDS">DEFAULT_FSHLOG_WAIT_ON_SHUTDOWN_IN_SECONDS</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#DEFAULT_LOW_REPLICATION_ROLL_LIMIT">DEFAULT_LOW_REPLICATION_ROLL_LIMIT</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#DEFAULT_MAX_BATCH_COUNT">DEFAULT_MAX_BATCH_COUNT</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#DEFAULT_ROLL_ERRORS_TOLERATED">DEFAULT_ROLL_ERRORS_TOLERATED</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#DEFAULT_SYNCER_COUNT">DEFAULT_SYNCER_COUNT</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private com.lmax.disruptor.dsl.Disruptor&lt;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.html" title="class in org.apache.hadoop.hbase.regionserver.wal">RingBufferTruck</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#disruptor">disruptor</a></span></code>
<div class="block">The nexus at which all incoming handlers meet.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#FIXED_OVERHEAD">FIXED_OVERHEAD</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#FSHLOG_WAIT_ON_SHUTDOWN_IN_SECONDS">FSHLOG_WAIT_ON_SHUTDOWN_IN_SECONDS</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private org.apache.hadoop.fs.FSDataOutputStream</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#hdfs_out">hdfs_out</a></span></code>
<div class="block">FSDataOutputStream associated with the current SequenceFile.writer</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private static org.slf4j.Logger</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#LOG">LOG</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#LOW_REPLICATION_ROLL_LIMIT">LOW_REPLICATION_ROLL_LIMIT</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#lowReplicationRollEnabled">lowReplicationRollEnabled</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#lowReplicationRollLimit">lowReplicationRollLimit</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#MAX_BATCH_COUNT">MAX_BATCH_COUNT</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#minTolerableReplication">minTolerableReplication</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSHLog.RingBufferEventHandler.html" title="class in org.apache.hadoop.hbase.regionserver.wal">FSHLog.RingBufferEventHandler</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#ringBufferEventHandler">ringBufferEventHandler</a></span></code>
<div class="block">This fellow is run by the above appendExecutor service but it is all about batching up appends
and syncs; it may shutdown without cleaning out the last few appends or syncs.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#ROLL_ERRORS_TOLERATED">ROLL_ERRORS_TOLERATED</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#SYNCER_COUNT">SYNCER_COUNT</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#TOLERABLE_LOW_REPLICATION">TOLERABLE_LOW_REPLICATION</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#waitOnShutdownInSeconds">waitOnShutdownInSeconds</a></span></code>&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="fields.inherited.from.class.org.apache.hadoop.hbase.regionserver.wal.AbstractFSWAL">
<!-- -->
</a>
<h3>Fields inherited from class&nbsp;org.apache.hadoop.hbase.regionserver.wal.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html" title="class in org.apache.hadoop.hbase.regionserver.wal">AbstractFSWAL</a></h3>
<code><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#abortable">abortable</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#blocksize">blocksize</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#closed">closed</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#conf">conf</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#coprocessorHost">coprocessorHost</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#DEFAULT_ROLL_ON_SYNC_TIME_MS">DEFAULT_ROLL_ON_SYNC_TIME_MS</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#DEFAULT_SLOW_SYNC_ROLL_INTERVAL_MS">DEFAULT_SLOW_SYNC_ROLL_INTERVAL_MS</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#DEFAULT_SLOW_SYNC_ROLL_THRESHOLD">DEFAULT_SLOW_SYNC_ROLL_THRESHOLD</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#DEFAULT_SLOW_SYNC_TIME_MS">DEFAULT_SLOW_SYNC_TIME_MS</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#DEFAULT_WAL_SYNC_TIMEOUT_MS">DEFAULT_WAL_SYNC_TIMEOUT_MS</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#filenum">filenum</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#fs">fs</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#highestSyncedTxid">highestSyncedTxid</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#highestUnsyncedTxid">highestUnsyncedTxid</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#implClassName">implClassName</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#inflightWALClosures">inflightWALClosures</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#listeners">listeners</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#LOG_NAME_COMPARATOR">LOG_NAME_COMPARATOR</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#logrollsize">logrollsize</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#MAX_LOGS">MAX_LOGS</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#maxLogs">maxLogs</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#numEntries">numEntries</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#ourFiles">ourFiles</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#prefixPathStr">prefixPathStr</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#RING_BUFFER_SLOT_COUNT">RING_BUFFER_SLOT_COUNT</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#ROLL_ON_SYNC_TIME_MS">ROLL_ON_SYNC_TIME_MS</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#rollOnSyncNs">rollOnSyncNs</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#rollRequested">rollRequested</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#rollWriterLock">rollWriterLock</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#sequenceIdAccounting">sequenceIdAccounting</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#shutdown">shutdown</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#SLOW_SYNC_ROLL_INTERVAL_MS">SLOW_SYNC_ROLL_INTERVAL_MS</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#SLOW_SYNC_ROLL_THRESHOLD">SLOW_SYNC_ROLL_THRESHOLD</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#SLOW_SYNC_TIME_MS">SLOW_SYNC_TIME_MS</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#slowSyncCheckInterval">slowSyncCheckInterval</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#slowSyncCount">slowSyncCount</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#slowSyncNs">slowSyncNs</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#slowSyncRollThreshold">slowSyncRollThreshold</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#syncFutureCache">syncFutureCache</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#totalLogSize">totalLogSize</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#useHsync">useHsync</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#WAL_ROLL_MULTIPLIER">WAL_ROLL_MULTIPLIER</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#WAL_SYNC_TIMEOUT_MS">WAL_SYNC_TIMEOUT_MS</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#walArchiveDir">walArchiveDir</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#walDir">walDir</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#walFile2Props">walFile2Props</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#walFilePrefix">walFilePrefix</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#walFileSuffix">walFileSuffix</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#writer">writer</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.html#FSHLog-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.hbase.Abortable-org.apache.hadoop.fs.Path-java.lang.String-org.apache.hadoop.conf.Configuration-">FSHLog</a></span>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
<a href="../../../../../../org/apache/hadoop/hbase/Abortable.html" title="interface in org.apache.hadoop.hbase">Abortable</a>&nbsp;abortable,
org.apache.hadoop.fs.Path&nbsp;root,
<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;logDir,
org.apache.hadoop.conf.Configuration&nbsp;conf)</code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#FSHLog-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.hbase.Abortable-org.apache.hadoop.fs.Path-java.lang.String-java.lang.String-org.apache.hadoop.conf.Configuration-java.util.List-boolean-java.lang.String-java.lang.String-">FSHLog</a></span>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
<a href="../../../../../../org/apache/hadoop/hbase/Abortable.html" title="interface in org.apache.hadoop.hbase">Abortable</a>&nbsp;abortable,
org.apache.hadoop.fs.Path&nbsp;rootDir,
<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;logDir,
<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;archiveDir,
org.apache.hadoop.conf.Configuration&nbsp;conf,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/WALActionsListener.html" title="interface in org.apache.hadoop.hbase.regionserver.wal">WALActionsListener</a>&gt;&nbsp;listeners,
boolean&nbsp;failIfWALExists,
<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;prefix,
<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;suffix)</code>
<div class="block">Create an edit log at the given <code>dir</code> location.</div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#FSHLog-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-java.lang.String-org.apache.hadoop.conf.Configuration-">FSHLog</a></span>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
org.apache.hadoop.fs.Path&nbsp;root,
<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;logDir,
org.apache.hadoop.conf.Configuration&nbsp;conf)</code>
<div class="block">Constructor.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#FSHLog-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-java.lang.String-java.lang.String-org.apache.hadoop.conf.Configuration-java.util.List-boolean-java.lang.String-java.lang.String-">FSHLog</a></span>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
org.apache.hadoop.fs.Path&nbsp;rootDir,
<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;logDir,
<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;archiveDir,
org.apache.hadoop.conf.Configuration&nbsp;conf,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/WALActionsListener.html" title="interface in org.apache.hadoop.hbase.regionserver.wal">WALActionsListener</a>&gt;&nbsp;listeners,
boolean&nbsp;failIfWALExists,
<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;prefix,
<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;suffix)</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>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#afterCreatingZigZagLatch--">afterCreatingZigZagLatch</a></span>()</code>
<div class="block">Used to manufacture race condition reliably.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>protected long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#append-org.apache.hadoop.hbase.client.RegionInfo-org.apache.hadoop.hbase.wal.WALKeyImpl-org.apache.hadoop.hbase.wal.WALEdit-boolean-">append</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;hri,
<a href="../../../../../../org/apache/hadoop/hbase/wal/WALKeyImpl.html" title="class in org.apache.hadoop.hbase.wal">WALKeyImpl</a>&nbsp;key,
<a href="../../../../../../org/apache/hadoop/hbase/wal/WALEdit.html" title="class in org.apache.hadoop.hbase.wal">WALEdit</a>&nbsp;edits,
boolean&nbsp;inMemstore)</code>
<div class="block">Append a set of edits to the WAL.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#beforeWaitOnSafePoint--">beforeWaitOnSafePoint</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>private boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#checkLogRoll--">checkLogRoll</a></span>()</code>
<div class="block">Schedule a log roll if needed.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#closeWriter-org.apache.hadoop.hbase.wal.WALProvider.Writer-org.apache.hadoop.fs.Path-boolean-">closeWriter</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/wal/WALProvider.Writer.html" title="interface in org.apache.hadoop.hbase.wal">WALProvider.Writer</a>&nbsp;writer,
org.apache.hadoop.fs.Path&nbsp;path,
boolean&nbsp;syncCloseCall)</code>&nbsp;</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>protected <a href="../../../../../../org/apache/hadoop/hbase/wal/WALProvider.Writer.html" title="interface in org.apache.hadoop.hbase.wal">WALProvider.Writer</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#createWriterInstance-org.apache.hadoop.fs.Path-">createWriterInstance</a></span>(org.apache.hadoop.fs.Path&nbsp;path)</code>
<div class="block">This method allows subclasses to inject different writers without having to extend other
methods like rollWriter().</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#doAppend-org.apache.hadoop.hbase.wal.WALProvider.Writer-org.apache.hadoop.hbase.regionserver.wal.FSWALEntry-">doAppend</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/wal/WALProvider.Writer.html" title="interface in org.apache.hadoop.hbase.wal">WALProvider.Writer</a>&nbsp;writer,
<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSWALEntry.html" title="class in org.apache.hadoop.hbase.regionserver.wal">FSWALEntry</a>&nbsp;entry)</code>&nbsp;</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>protected boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#doCheckLogLowReplication--">doCheckLogLowReplication</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#doReplaceWriter-org.apache.hadoop.fs.Path-org.apache.hadoop.fs.Path-org.apache.hadoop.hbase.wal.WALProvider.Writer-">doReplaceWriter</a></span>(org.apache.hadoop.fs.Path&nbsp;oldPath,
org.apache.hadoop.fs.Path&nbsp;newPath,
<a href="../../../../../../org/apache/hadoop/hbase/wal/WALProvider.Writer.html" title="interface in org.apache.hadoop.hbase.wal">WALProvider.Writer</a>&nbsp;nextWriter)</code>
<div class="block">Notice that you need to clear the <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#rollRequested"><code>AbstractFSWAL.rollRequested</code></a> flag in this method, as the new writer
will begin to work before returning from this method.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#doShutdown--">doShutdown</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#doSync-boolean-">doSync</a></span>(boolean&nbsp;forceSync)</code>&nbsp;</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#doSync-long-boolean-">doSync</a></span>(long&nbsp;txid,
boolean&nbsp;forceSync)</code>&nbsp;</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>(package private) int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#getLogReplication--">getLogReplication</a></span>()</code>
<div class="block">This method gets the datanode replication count for the current WAL.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>(package private) <a href="https://docs.oracle.com/javase/8/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io">OutputStream</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#getOutputStream--">getOutputStream</a></span>()</code>
<div class="block">Currently, we need to expose the writer's OutputStream to tests so that they can manipulate the
default behavior (such as setting the maxRecoveryErrorCount value).</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>(package private) org.apache.hadoop.hdfs.protocol.DatanodeInfo[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#getPipeline--">getPipeline</a></span>()</code>
<div class="block">This method gets the pipeline for the current WAL.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>protected long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#getSequenceOnRingBuffer--">getSequenceOnRingBuffer</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>(package private) <a href="../../../../../../org/apache/hadoop/hbase/wal/WALProvider.Writer.html" title="interface in org.apache.hadoop.hbase.wal">WALProvider.Writer</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#getWriter--">getWriter</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i17" class="rowColor">
<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.html#isLowReplicationRollEnabled--">isLowReplicationRollEnabled</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#preemptiveSync-org.apache.hadoop.hbase.regionserver.wal.ProtobufLogWriter-">preemptiveSync</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/ProtobufLogWriter.html" title="class in org.apache.hadoop.hbase.regionserver.wal">ProtobufLogWriter</a>&nbsp;nextWriter)</code>
<div class="block">Run a sync after opening to set up the pipeline.</div>
</td>
</tr>
<tr id="i19" class="rowColor">
<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.html#publishSyncOnRingBuffer-boolean-">publishSyncOnRingBuffer</a></span>(boolean&nbsp;forceSync)</code>&nbsp;</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code>protected <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.html#publishSyncOnRingBuffer-long-boolean-">publishSyncOnRingBuffer</a></span>(long&nbsp;sequence,
boolean&nbsp;forceSync)</code>&nbsp;</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#publishSyncThenBlockOnCompletion-boolean-">publishSyncThenBlockOnCompletion</a></span>(boolean&nbsp;forceSync)</code>&nbsp;</td>
</tr>
<tr id="i22" class="altColor">
<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.html#setWriter-org.apache.hadoop.hbase.wal.WALProvider.Writer-">setWriter</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/wal/WALProvider.Writer.html" title="interface in org.apache.hadoop.hbase.wal">WALProvider.Writer</a>&nbsp;writer)</code>&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.regionserver.wal.AbstractFSWAL">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.regionserver.wal.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html" title="class in org.apache.hadoop.hbase.regionserver.wal">AbstractFSWAL</a></h3>
<code><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#abortCacheFlush-byte:A-">abortCacheFlush</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#appendData-org.apache.hadoop.hbase.client.RegionInfo-org.apache.hadoop.hbase.wal.WALKeyImpl-org.apache.hadoop.hbase.wal.WALEdit-">appendData</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#appendEntry-W-org.apache.hadoop.hbase.regionserver.wal.FSWALEntry-">appendEntry</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#appendMarker-org.apache.hadoop.hbase.client.RegionInfo-org.apache.hadoop.hbase.wal.WALKeyImpl-org.apache.hadoop.hbase.wal.WALEdit-">appendMarker</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#archive-org.apache.hadoop.hbase.util.Pair-">archive</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#archiveLogFile-org.apache.hadoop.fs.Path-">archiveLogFile</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#atHeadOfRingBufferEventHandlerAppend--">atHeadOfRingBufferEventHandlerAppend</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#blockOnSync-org.apache.hadoop.hbase.regionserver.wal.SyncFuture-">blockOnSync</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#checkLogLowReplication-long-">checkLogLowReplication</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#close--">close</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#completeCacheFlush-byte:A-long-">completeCacheFlush</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#computeFilename-long-">computeFilename</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#doCheckSlowSync--">doCheckSlowSync</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#findRegionsToForceFlush--">findRegionsToForceFlush</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#getCoprocessorHost--">getCoprocessorHost</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#getCurrentFileName--">getCurrentFileName</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#getEarliestMemStoreSeqNum-byte:A-">getEarliestMemStoreSeqNum</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#getEarliestMemStoreSeqNum-byte:A-byte:A-">getEarliestMemStoreSeqNum</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#getFilenum--">getFilenum</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#getFileNumFromFileName-org.apache.hadoop.fs.Path-">getFileNumFromFileName</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#getFiles--">getFiles</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#getInflightWALCloseCount--">getInflightWALCloseCount</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#getLogFileSize--">getLogFileSize</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#getLogFileSizeIfBeingWritten-org.apache.hadoop.fs.Path-">getLogFileSizeIfBeingWritten</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#getNumLogFiles--">getNumLogFiles</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#getNumRolledLogFiles--">getNumRolledLogFiles</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#getOldPath--">getOldPath</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#getPreallocatedEventCount--">getPreallocatedEventCount</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#getSyncFuture-long-boolean-">getSyncFuture</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#getUnflushedEntriesCount--">getUnflushedEntriesCount</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#getWALArchivePath-org.apache.hadoop.fs.Path-org.apache.hadoop.fs.Path-">getWALArchivePath</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#init--">init</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#isLogRollRequested--">isLogRollRequested</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#isUnflushedEntries--">isUnflushedEntries</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#logRollAndSetupWalProps-org.apache.hadoop.fs.Path-org.apache.hadoop.fs.Path-long-">logRollAndSetupWalProps</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#main-java.lang.String:A-">main</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#postSync-long-int-">postSync</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#registerWALActionsListener-org.apache.hadoop.hbase.regionserver.wal.WALActionsListener-">registerWALActionsListener</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#replaceWriter-org.apache.hadoop.fs.Path-org.apache.hadoop.fs.Path-W-">replaceWriter</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#requestLogRoll--">requestLogRoll</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#requestLogRoll-org.apache.hadoop.hbase.regionserver.wal.WALActionsListener.RollRequestReason-">requestLogRoll</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#rollWriter--">rollWriter</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#rollWriter-boolean-">rollWriter</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#shutdown--">shutdown</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#stampSequenceIdAndPublishToRingBuffer-org.apache.hadoop.hbase.client.RegionInfo-org.apache.hadoop.hbase.wal.WALKeyImpl-org.apache.hadoop.hbase.wal.WALEdit-boolean-com.lmax.disruptor.RingBuffer-">stampSequenceIdAndPublishToRingBuffer</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#startCacheFlush-byte:A-java.util.Map-">startCacheFlush</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#startCacheFlush-byte:A-java.util.Set-">startCacheFlush</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#sync--">sync</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#sync-boolean-">sync</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#sync-long-">sync</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#sync-long-boolean-">sync</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#toString--">toString</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#unregisterWALActionsListener-org.apache.hadoop.hbase.regionserver.wal.WALActionsListener-">unregisterWALActionsListener</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#updateStore-byte:A-byte:A-java.lang.Long-boolean-">updateStore</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#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a name="LOG">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>LOG</h4>
<pre>private static final&nbsp;org.slf4j.Logger <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#line.108">LOG</a></pre>
</li>
</ul>
<a name="TOLERABLE_LOW_REPLICATION">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>TOLERABLE_LOW_REPLICATION</h4>
<pre>private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#line.110">TOLERABLE_LOW_REPLICATION</a></pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.wal.FSHLog.TOLERABLE_LOW_REPLICATION">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="LOW_REPLICATION_ROLL_LIMIT">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>LOW_REPLICATION_ROLL_LIMIT</h4>
<pre>private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#line.111">LOW_REPLICATION_ROLL_LIMIT</a></pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.wal.FSHLog.LOW_REPLICATION_ROLL_LIMIT">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="DEFAULT_LOW_REPLICATION_ROLL_LIMIT">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DEFAULT_LOW_REPLICATION_ROLL_LIMIT</h4>
<pre>private static final&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#line.112">DEFAULT_LOW_REPLICATION_ROLL_LIMIT</a></pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.wal.FSHLog.DEFAULT_LOW_REPLICATION_ROLL_LIMIT">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="ROLL_ERRORS_TOLERATED">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ROLL_ERRORS_TOLERATED</h4>
<pre>private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#line.113">ROLL_ERRORS_TOLERATED</a></pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.wal.FSHLog.ROLL_ERRORS_TOLERATED">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="DEFAULT_ROLL_ERRORS_TOLERATED">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DEFAULT_ROLL_ERRORS_TOLERATED</h4>
<pre>private static final&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#line.114">DEFAULT_ROLL_ERRORS_TOLERATED</a></pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.wal.FSHLog.DEFAULT_ROLL_ERRORS_TOLERATED">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="SYNCER_COUNT">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>SYNCER_COUNT</h4>
<pre>private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#line.115">SYNCER_COUNT</a></pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.wal.FSHLog.SYNCER_COUNT">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="DEFAULT_SYNCER_COUNT">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DEFAULT_SYNCER_COUNT</h4>
<pre>private static final&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#line.116">DEFAULT_SYNCER_COUNT</a></pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.wal.FSHLog.DEFAULT_SYNCER_COUNT">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="MAX_BATCH_COUNT">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>MAX_BATCH_COUNT</h4>
<pre>private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#line.117">MAX_BATCH_COUNT</a></pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.wal.FSHLog.MAX_BATCH_COUNT">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="DEFAULT_MAX_BATCH_COUNT">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DEFAULT_MAX_BATCH_COUNT</h4>
<pre>private static final&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#line.118">DEFAULT_MAX_BATCH_COUNT</a></pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.wal.FSHLog.DEFAULT_MAX_BATCH_COUNT">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="FSHLOG_WAIT_ON_SHUTDOWN_IN_SECONDS">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>FSHLOG_WAIT_ON_SHUTDOWN_IN_SECONDS</h4>
<pre>private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#line.120">FSHLOG_WAIT_ON_SHUTDOWN_IN_SECONDS</a></pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.wal.FSHLog.FSHLOG_WAIT_ON_SHUTDOWN_IN_SECONDS">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="DEFAULT_FSHLOG_WAIT_ON_SHUTDOWN_IN_SECONDS">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DEFAULT_FSHLOG_WAIT_ON_SHUTDOWN_IN_SECONDS</h4>
<pre>private static final&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#line.121">DEFAULT_FSHLOG_WAIT_ON_SHUTDOWN_IN_SECONDS</a></pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.wal.FSHLog.DEFAULT_FSHLOG_WAIT_ON_SHUTDOWN_IN_SECONDS">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="disruptor">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>disruptor</h4>
<pre>private final&nbsp;com.lmax.disruptor.dsl.Disruptor&lt;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.html" title="class in org.apache.hadoop.hbase.regionserver.wal">RingBufferTruck</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#line.130">disruptor</a></pre>
<div class="block">The nexus at which all incoming handlers meet. Does appends and sync with an ordering. Appends
and syncs are each put on the ring which means handlers need to smash up against the ring twice
(can we make it once only? ... maybe not since time to append is so different from time to sync
and sometimes we don't want to sync or we want to async the sync). The ring is where we make
sure of our ordering and it is also where we do batching up of handler sync calls.</div>
</li>
</ul>
<a name="ringBufferEventHandler">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ringBufferEventHandler</h4>
<pre>private final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSHLog.RingBufferEventHandler.html" title="class in org.apache.hadoop.hbase.regionserver.wal">FSHLog.RingBufferEventHandler</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#line.138">ringBufferEventHandler</a></pre>
<div class="block">This fellow is run by the above appendExecutor service but it is all about batching up appends
and syncs; it may shutdown without cleaning out the last few appends or syncs. To guard against
this, keep a reference to this handler and do explicit close on way out to make sure all
flushed out before we exit.</div>
</li>
</ul>
<a name="hdfs_out">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hdfs_out</h4>
<pre>private&nbsp;org.apache.hadoop.fs.FSDataOutputStream <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#line.143">hdfs_out</a></pre>
<div class="block">FSDataOutputStream associated with the current SequenceFile.writer</div>
</li>
</ul>
<a name="minTolerableReplication">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>minTolerableReplication</h4>
<pre>private final&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#line.148">minTolerableReplication</a></pre>
</li>
</ul>
<a name="consecutiveLogRolls">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>consecutiveLogRolls</h4>
<pre>private final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicInteger.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicInteger</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#line.154">consecutiveLogRolls</a></pre>
</li>
</ul>
<a name="lowReplicationRollLimit">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>lowReplicationRollLimit</h4>
<pre>private final&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#line.156">lowReplicationRollLimit</a></pre>
</li>
</ul>
<a name="lowReplicationRollEnabled">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>lowReplicationRollEnabled</h4>
<pre>private volatile&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#line.161">lowReplicationRollEnabled</a></pre>
</li>
</ul>
<a name="closeErrorsTolerated">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>closeErrorsTolerated</h4>
<pre>private final&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#line.164">closeErrorsTolerated</a></pre>
<div class="block">Number of log close errors tolerated before we abort</div>
</li>
</ul>
<a name="closeErrorCount">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>closeErrorCount</h4>
<pre>private final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicInteger.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicInteger</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#line.166">closeErrorCount</a></pre>
</li>
</ul>
<a name="waitOnShutdownInSeconds">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>waitOnShutdownInSeconds</h4>
<pre>private final&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#line.168">waitOnShutdownInSeconds</a></pre>
</li>
</ul>
<a name="closeExecutor">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>closeExecutor</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/regionserver/wal/FSHLog.html#line.169">closeExecutor</a></pre>
</li>
</ul>
<a name="FIXED_OVERHEAD">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>FIXED_OVERHEAD</h4>
<pre>public static final&nbsp;long <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#line.833">FIXED_OVERHEAD</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="FSHLog-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-java.lang.String-org.apache.hadoop.conf.Configuration-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>FSHLog</h4>
<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#line.204">FSHLog</a>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
org.apache.hadoop.fs.Path&nbsp;root,
<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;logDir,
org.apache.hadoop.conf.Configuration&nbsp;conf)
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">Constructor.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>fs</code> - filesystem handle</dd>
<dd><code>root</code> - path for stored and archived wals</dd>
<dd><code>logDir</code> - dir where wals are stored</dd>
<dd><code>conf</code> - configuration to use</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="FSHLog-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.hbase.Abortable-org.apache.hadoop.fs.Path-java.lang.String-org.apache.hadoop.conf.Configuration-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>FSHLog</h4>
<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#line.209">FSHLog</a>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
<a href="../../../../../../org/apache/hadoop/hbase/Abortable.html" title="interface in org.apache.hadoop.hbase">Abortable</a>&nbsp;abortable,
org.apache.hadoop.fs.Path&nbsp;root,
<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;logDir,
org.apache.hadoop.conf.Configuration&nbsp;conf)
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>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
</dl>
</li>
</ul>
<a name="FSHLog-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-java.lang.String-java.lang.String-org.apache.hadoop.conf.Configuration-java.util.List-boolean-java.lang.String-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>FSHLog</h4>
<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#line.215">FSHLog</a>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
org.apache.hadoop.fs.Path&nbsp;rootDir,
<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;logDir,
<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;archiveDir,
org.apache.hadoop.conf.Configuration&nbsp;conf,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/WALActionsListener.html" title="interface in org.apache.hadoop.hbase.regionserver.wal">WALActionsListener</a>&gt;&nbsp;listeners,
boolean&nbsp;failIfWALExists,
<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;prefix,
<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;suffix)
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>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
</dl>
</li>
</ul>
<a name="FSHLog-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.hbase.Abortable-org.apache.hadoop.fs.Path-java.lang.String-java.lang.String-org.apache.hadoop.conf.Configuration-java.util.List-boolean-java.lang.String-java.lang.String-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>FSHLog</h4>
<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#line.240">FSHLog</a>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
<a href="../../../../../../org/apache/hadoop/hbase/Abortable.html" title="interface in org.apache.hadoop.hbase">Abortable</a>&nbsp;abortable,
org.apache.hadoop.fs.Path&nbsp;rootDir,
<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;logDir,
<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;archiveDir,
org.apache.hadoop.conf.Configuration&nbsp;conf,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/WALActionsListener.html" title="interface in org.apache.hadoop.hbase.regionserver.wal">WALActionsListener</a>&gt;&nbsp;listeners,
boolean&nbsp;failIfWALExists,
<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;prefix,
<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;suffix)
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">Create an edit log at the given <code>dir</code> location. You should never have to load an
existing log. If there is a log at startup, it should have already been processed and deleted
by the time the WAL object is started up.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>fs</code> - filesystem handle</dd>
<dd><code>abortable</code> - Abortable - the server here</dd>
<dd><code>rootDir</code> - path to where logs and oldlogs</dd>
<dd><code>logDir</code> - dir where wals are stored</dd>
<dd><code>archiveDir</code> - dir where wals are archived</dd>
<dd><code>conf</code> - configuration to use</dd>
<dd><code>listeners</code> - Listeners on WAL events. Listeners passed here will be registered before we do
anything else; e.g. the Constructor <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#rollWriter--"><code>AbstractFSWAL.rollWriter()</code></a>.</dd>
<dd><code>failIfWALExists</code> - If true IOException will be thrown if files related to this wal already
exist.</dd>
<dd><code>prefix</code> - should always be hostname and port in distributed env and it will be URL encoded
before being used. If prefix is null, "wal" will be used</dd>
<dd><code>suffix</code> - will be url encoded. null is treated as empty. non-empty must start with
<a href="../../../../../../org/apache/hadoop/hbase/wal/AbstractFSWALProvider.html#WAL_FILE_NAME_DELIMITER"><code>AbstractFSWALProvider.WAL_FILE_NAME_DELIMITER</code></a></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>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="getOutputStream--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getOutputStream</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io">OutputStream</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#line.281">getOutputStream</a>()</pre>
<div class="block">Currently, we need to expose the writer's OutputStream to tests so that they can manipulate the
default behavior (such as setting the maxRecoveryErrorCount value). This is
done using reflection on the underlying HDFS OutputStream. NOTE: This could be removed once Hadoop1 support is
removed.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>null if underlying stream is not ready.</dd>
</dl>
</li>
</ul>
<a name="preemptiveSync-org.apache.hadoop.hbase.regionserver.wal.ProtobufLogWriter-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>preemptiveSync</h4>
<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#line.289">preemptiveSync</a>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/ProtobufLogWriter.html" title="class in org.apache.hadoop.hbase.regionserver.wal">ProtobufLogWriter</a>&nbsp;nextWriter)</pre>
<div class="block">Run a sync after opening to set up the pipeline.</div>
</li>
</ul>
<a name="createWriterInstance-org.apache.hadoop.fs.Path-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createWriterInstance</h4>
<pre>protected&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/wal/WALProvider.Writer.html" title="interface in org.apache.hadoop.hbase.wal">WALProvider.Writer</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#line.306">createWriterInstance</a>(org.apache.hadoop.fs.Path&nbsp;path)
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">This method allows subclasses to inject different writers without having to extend other
methods like rollWriter().</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#createWriterInstance-org.apache.hadoop.fs.Path-">createWriterInstance</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html" title="class in org.apache.hadoop.hbase.regionserver.wal">AbstractFSWAL</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/wal/WALProvider.Writer.html" title="interface in org.apache.hadoop.hbase.wal">WALProvider.Writer</a>&gt;</code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Writer instance</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="afterCreatingZigZagLatch--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>afterCreatingZigZagLatch</h4>
<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#line.318">afterCreatingZigZagLatch</a>()</pre>
<div class="block">Used to manufacture race condition reliably. For testing only.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#beforeWaitOnSafePoint--"><code>beforeWaitOnSafePoint()</code></a></dd>
</dl>
</li>
</ul>
<a name="beforeWaitOnSafePoint--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>beforeWaitOnSafePoint</h4>
<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#line.324">beforeWaitOnSafePoint</a>()</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#afterCreatingZigZagLatch--"><code>afterCreatingZigZagLatch()</code></a></dd>
</dl>
</li>
</ul>
<a name="doAppend-org.apache.hadoop.hbase.wal.WALProvider.Writer-org.apache.hadoop.hbase.regionserver.wal.FSWALEntry-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>doAppend</h4>
<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#line.328">doAppend</a>(<a href="../../../../../../org/apache/hadoop/hbase/wal/WALProvider.Writer.html" title="interface in org.apache.hadoop.hbase.wal">WALProvider.Writer</a>&nbsp;writer,
<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSWALEntry.html" title="class in org.apache.hadoop.hbase.regionserver.wal">FSWALEntry</a>&nbsp;entry)
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>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#doAppend-W-org.apache.hadoop.hbase.regionserver.wal.FSWALEntry-">doAppend</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html" title="class in org.apache.hadoop.hbase.regionserver.wal">AbstractFSWAL</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/wal/WALProvider.Writer.html" title="interface in org.apache.hadoop.hbase.wal">WALProvider.Writer</a>&gt;</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="doReplaceWriter-org.apache.hadoop.fs.Path-org.apache.hadoop.fs.Path-org.apache.hadoop.hbase.wal.WALProvider.Writer-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>doReplaceWriter</h4>
<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#line.333">doReplaceWriter</a>(org.apache.hadoop.fs.Path&nbsp;oldPath,
org.apache.hadoop.fs.Path&nbsp;newPath,
<a href="../../../../../../org/apache/hadoop/hbase/wal/WALProvider.Writer.html" title="interface in org.apache.hadoop.hbase.wal">WALProvider.Writer</a>&nbsp;nextWriter)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#doReplaceWriter-org.apache.hadoop.fs.Path-org.apache.hadoop.fs.Path-W-">AbstractFSWAL</a></code></span></div>
<div class="block">Notice that you need to clear the <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#rollRequested"><code>AbstractFSWAL.rollRequested</code></a> flag in this method, as the new writer
will begin to work before returning from this method. If we clear the flag after returning from
this call, we may miss a roll request. The implementation class should choose a proper place to
clear the <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#rollRequested"><code>AbstractFSWAL.rollRequested</code></a> flag so we do not miss a roll request, typically before you
start writing to the new writer.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#doReplaceWriter-org.apache.hadoop.fs.Path-org.apache.hadoop.fs.Path-W-">doReplaceWriter</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html" title="class in org.apache.hadoop.hbase.regionserver.wal">AbstractFSWAL</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/wal/WALProvider.Writer.html" title="interface in org.apache.hadoop.hbase.wal">WALProvider.Writer</a>&gt;</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="closeWriter-org.apache.hadoop.hbase.wal.WALProvider.Writer-org.apache.hadoop.fs.Path-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>closeWriter</h4>
<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#line.436">closeWriter</a>(<a href="../../../../../../org/apache/hadoop/hbase/wal/WALProvider.Writer.html" title="interface in org.apache.hadoop.hbase.wal">WALProvider.Writer</a>&nbsp;writer,
org.apache.hadoop.fs.Path&nbsp;path,
boolean&nbsp;syncCloseCall)
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>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
</dl>
</li>
</ul>
<a name="doShutdown--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>doShutdown</h4>
<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#line.458">doShutdown</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>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#doShutdown--">doShutdown</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html" title="class in org.apache.hadoop.hbase.regionserver.wal">AbstractFSWAL</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/wal/WALProvider.Writer.html" title="interface in org.apache.hadoop.hbase.wal">WALProvider.Writer</a>&gt;</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="append-org.apache.hadoop.hbase.client.RegionInfo-org.apache.hadoop.hbase.wal.WALKeyImpl-org.apache.hadoop.hbase.wal.WALEdit-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>append</h4>
<pre>protected&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#line.496">append</a>(<a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;hri,
<a href="../../../../../../org/apache/hadoop/hbase/wal/WALKeyImpl.html" title="class in org.apache.hadoop.hbase.wal">WALKeyImpl</a>&nbsp;key,
<a href="../../../../../../org/apache/hadoop/hbase/wal/WALEdit.html" title="class in org.apache.hadoop.hbase.wal">WALEdit</a>&nbsp;edits,
boolean&nbsp;inMemstore)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#append-org.apache.hadoop.hbase.client.RegionInfo-org.apache.hadoop.hbase.wal.WALKeyImpl-org.apache.hadoop.hbase.wal.WALEdit-boolean-">AbstractFSWAL</a></code></span></div>
<div class="block">Append a set of edits to the WAL.
<p/>
The WAL is not flushed/sync'd after this transaction completes BUT on return this edit must
have its region edit/sequence id assigned else it messes up our unification of mvcc and
sequenceid. On return <code>key</code> will have the region edit/sequence id filled in.
<p/>
NOTE: This append, at a time that is usually after this call returns, starts an mvcc
transaction by calling 'begin' wherein which we assign this update a sequenceid. At assignment
time, we stamp all the passed in Cells inside WALEdit with their sequenceId. You must
'complete' the transaction this mvcc transaction by calling
MultiVersionConcurrencyControl#complete(...) or a variant otherwise mvcc will get stuck. Do it
in the finally of a try/finally block within which this append lives and any subsequent
operations like sync or update of memstore, etc. Get the WriteEntry to pass mvcc out of the
passed in WALKey <code>walKey</code> parameter. Be warned that the WriteEntry is not
immediately available on return from this method. It WILL be available subsequent to a sync of
this append; otherwise, you will just have to wait on the WriteEntry to get filled in.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#append-org.apache.hadoop.hbase.client.RegionInfo-org.apache.hadoop.hbase.wal.WALKeyImpl-org.apache.hadoop.hbase.wal.WALEdit-boolean-">append</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html" title="class in org.apache.hadoop.hbase.regionserver.wal">AbstractFSWAL</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/wal/WALProvider.Writer.html" title="interface in org.apache.hadoop.hbase.wal">WALProvider.Writer</a>&gt;</code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>hri</code> - the regioninfo associated with append</dd>
<dd><code>key</code> - Modified by this call; we add to it this edits region edit/sequence id.</dd>
<dd><code>edits</code> - Edits to append. MAY CONTAIN NO EDITS for case where we want to get an edit
sequence id that is after all currently appended edits.</dd>
<dd><code>inMemstore</code> - Always true except for case where we are writing a region event meta
marker edit, for example, a compaction completion record into the WAL or noting a
Region Open event. In these cases the entry is just so we can finish an unfinished
compaction after a crash when the new Server reads the WAL on recovery, etc. These
transition event 'Markers' do not go via the memstore. When memstore is false,
we presume a Marker event edit.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Returns a 'transaction id' and <code>key</code> will have the region edit/sequence id
in it.</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="checkLogRoll--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>checkLogRoll</h4>
<pre>private&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#line.686">checkLogRoll</a>()</pre>
<div class="block">Schedule a log roll if needed.</div>
</li>
</ul>
<a name="doCheckLogLowReplication--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>doCheckLogLowReplication</h4>
<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#line.723">doCheckLogLowReplication</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#doCheckLogLowReplication--">doCheckLogLowReplication</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html" title="class in org.apache.hadoop.hbase.regionserver.wal">AbstractFSWAL</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/wal/WALProvider.Writer.html" title="interface in org.apache.hadoop.hbase.wal">WALProvider.Writer</a>&gt;</code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if number of replicas for the WAL is lower than threshold</dd>
</dl>
</li>
</ul>
<a name="getSequenceOnRingBuffer--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSequenceOnRingBuffer</h4>
<pre>protected&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#line.768">getSequenceOnRingBuffer</a>()</pre>
</li>
</ul>
<a name="publishSyncOnRingBuffer-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>publishSyncOnRingBuffer</h4>
<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/SyncFuture.html" title="class in org.apache.hadoop.hbase.regionserver.wal">SyncFuture</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#line.772">publishSyncOnRingBuffer</a>(boolean&nbsp;forceSync)</pre>
</li>
</ul>
<a name="publishSyncOnRingBuffer-long-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>publishSyncOnRingBuffer</h4>
<pre>protected&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/SyncFuture.html" title="class in org.apache.hadoop.hbase.regionserver.wal">SyncFuture</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#line.777">publishSyncOnRingBuffer</a>(long&nbsp;sequence,
boolean&nbsp;forceSync)</pre>
</li>
</ul>
<a name="publishSyncThenBlockOnCompletion-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>publishSyncThenBlockOnCompletion</h4>
<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#line.790">publishSyncThenBlockOnCompletion</a>(boolean&nbsp;forceSync)
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>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
</dl>
</li>
</ul>
<a name="getLogReplication--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getLogReplication</h4>
<pre>int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#line.803">getLogReplication</a>()</pre>
<div class="block">This method gets the datanode replication count for the current WAL.
<p>
If the pipeline isn't started yet or is empty, you will get the default replication factor.
Therefore, if this function returns 0, it means you are not properly running with the HDFS-826
patch.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#getLogReplication--">getLogReplication</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html" title="class in org.apache.hadoop.hbase.regionserver.wal">AbstractFSWAL</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/wal/WALProvider.Writer.html" title="interface in org.apache.hadoop.hbase.wal">WALProvider.Writer</a>&gt;</code></dd>
</dl>
</li>
</ul>
<a name="doSync-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>doSync</h4>
<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#line.816">doSync</a>(boolean&nbsp;forceSync)
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>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#doSync-boolean-">doSync</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html" title="class in org.apache.hadoop.hbase.regionserver.wal">AbstractFSWAL</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/wal/WALProvider.Writer.html" title="interface in org.apache.hadoop.hbase.wal">WALProvider.Writer</a>&gt;</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="doSync-long-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>doSync</h4>
<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#line.821">doSync</a>(long&nbsp;txid,
boolean&nbsp;forceSync)
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>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#doSync-long-boolean-">doSync</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html" title="class in org.apache.hadoop.hbase.regionserver.wal">AbstractFSWAL</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/wal/WALProvider.Writer.html" title="interface in org.apache.hadoop.hbase.wal">WALProvider.Writer</a>&gt;</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="isLowReplicationRollEnabled--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isLowReplicationRollEnabled</h4>
<pre>boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#line.829">isLowReplicationRollEnabled</a>()</pre>
</li>
</ul>
<a name="getPipeline--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPipeline</h4>
<pre>org.apache.hadoop.hdfs.protocol.DatanodeInfo[]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#line.1195">getPipeline</a>()</pre>
<div class="block">This method gets the pipeline for the current WAL.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#getPipeline--">getPipeline</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html" title="class in org.apache.hadoop.hbase.regionserver.wal">AbstractFSWAL</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/wal/WALProvider.Writer.html" title="interface in org.apache.hadoop.hbase.wal">WALProvider.Writer</a>&gt;</code></dd>
</dl>
</li>
</ul>
<a name="getWriter--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getWriter</h4>
<pre><a href="../../../../../../org/apache/hadoop/hbase/wal/WALProvider.Writer.html" title="interface in org.apache.hadoop.hbase.wal">WALProvider.Writer</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#line.1204">getWriter</a>()</pre>
</li>
</ul>
<a name="setWriter-org.apache.hadoop.hbase.wal.WALProvider.Writer-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>setWriter</h4>
<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/FSHLog.html#line.1208">setWriter</a>(<a href="../../../../../../org/apache/hadoop/hbase/wal/WALProvider.Writer.html" title="interface in org.apache.hadoop.hbase.wal">WALProvider.Writer</a>&nbsp;writer)</pre>
</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.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/FailedSyncBeforeLogCloseException.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/FSHLog.RingBufferEventHandler.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.html" target="_top">Frames</a></li>
<li><a href="FSHLog.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><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>