blob: 4464957f87232de7653388170036b33ed95e0816 [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>SerialReplicationChecker (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="SerialReplicationChecker (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};
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/SerialReplicationChecker.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/replication/regionserver/ReplicationThrottler.html" title="class in org.apache.hadoop.hbase.replication.regionserver"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/SerialReplicationSourceWALReader.html" title="class in org.apache.hadoop.hbase.replication.regionserver"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/replication/regionserver/SerialReplicationChecker.html" target="_top">Frames</a></li>
<li><a href="SerialReplicationChecker.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.hadoop.hbase.replication.regionserver</div>
<h2 title="Class SerialReplicationChecker" class="title">Class SerialReplicationChecker</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li>org.apache.hadoop.hbase.replication.regionserver.SerialReplicationChecker</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>@InterfaceAudience.Private
class <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/SerialReplicationChecker.html#line.111">SerialReplicationChecker</a>
extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
<div class="block"><p>
Helper class to determine whether we can push a given WAL entry without breaking the replication
order. The class is designed to per <a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html" title="class in org.apache.hadoop.hbase.replication.regionserver"><code>ReplicationSourceWALReader</code></a>, so not thread safe.
</p>
<p>
We record all the open sequence number for a region in a special family in meta, which is called
'rep_barrier', so there will be a sequence of open sequence number (b1, b2, b3, ...). We call
[bn, bn+1) a range, and it is obvious that a region will always be on the same RS within a
range.
<p>
When split and merge, we will also record the parent for the generated region(s) in the special
family in meta. And also, we will write an extra 'open sequence number' for the parent
region(s), which is the max sequence id of the region plus one.
</p>
</p>
<p>
For each peer, we record the last pushed sequence id for each region. It is managed by the
replication storage.
</p>
<p>
The algorithm works like this:
<ol>
<li>Locate the sequence id we want to push in the barriers</li>
<li>If it is before the first barrier, we are safe to push. This usually because we enable serial
replication for this table after we create the table and write data into the table.</li>
<li>In general, if the previous range is finished, then we are safe to push. The way to determine
whether a range is finish is straight-forward: check whether the last pushed sequence id is equal
to the end barrier of the range minus 1. There are several exceptions:
<ul>
<li>If it is in the first range, we need to check whether there are parent regions. If so, we
need to make sure that the data for parent regions have all been pushed.</li>
<li>If it is in the last range, we need to check the region state. If state is OPENING, then we
are not safe to push. This is because that, before we call reportRIT to master which update the
open sequence number into meta table, we will write a open region event marker to WAL first, and
its sequence id is greater than the newest open sequence number(which has not been updated to
meta table yet so we do not know). For this scenario, the WAL entry for this open region event
marker actually belongs to the range after the 'last' range, so we are not safe to push it.
Otherwise the last pushed sequence id will be updated to this value and then we think the
previous range has already been finished, but this is not true.</li>
<li>Notice that the above two exceptions are not conflicts, since the first range can also be the
last range if we only have one range.</li>
</ul>
</li>
</ol>
</p>
<p>
And for performance reason, we do not want to check meta for every WAL entry, so we introduce two
in memory maps. The idea is simple:
<ul>
<li>If a range can be pushed, then put its end barrier into the <code>canPushUnder</code> map.</li>
<li>Before accessing meta, first check the sequence id stored in the <code>canPushUnder</code> map. If
the sequence id of WAL entry is less the one stored in <code>canPushUnder</code> map, then we are safe
to push.</li>
</ul>
And for the last range, we do not have an end barrier, so we use the continuity of sequence id to
determine whether we can push. The rule is:
<ul>
<li>When an entry is able to push, then put its sequence id into the <code>pushed</code> map.</li>
<li>Check if the sequence id of WAL entry equals to the one stored in the <code>pushed</code> map plus
one. If so, we are safe to push, and also update the <code>pushed</code> map with the sequence id of
the WAL entry.</li>
</ul>
</p></div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Field and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private org.apache.hbase.thirdparty.com.google.common.cache.Cache&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/SerialReplicationChecker.html#canPushUnder">canPushUnder</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/hbase/client/Connection.html" title="interface in org.apache.hadoop.hbase.client">Connection</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/SerialReplicationChecker.html#conn">conn</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private static org.slf4j.Logger</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/SerialReplicationChecker.html#LOG">LOG</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private <a href="https://docs.oracle.com/javase/8/docs/api/java/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/replication/regionserver/SerialReplicationChecker.html#peerId">peerId</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private org.apache.hbase.thirdparty.com.google.common.cache.LoadingCache&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,org.apache.commons.lang3.mutable.MutableLong&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/SerialReplicationChecker.html#pushed">pushed</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/SerialReplicationChecker.html#REPLICATION_SERIALLY_WAITING_DEFAULT">REPLICATION_SERIALLY_WAITING_DEFAULT</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>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/replication/regionserver/SerialReplicationChecker.html#REPLICATION_SERIALLY_WAITING_KEY">REPLICATION_SERIALLY_WAITING_KEY</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/hbase/replication/ReplicationQueueStorage.html" title="interface in org.apache.hadoop.hbase.replication">ReplicationQueueStorage</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/SerialReplicationChecker.html#storage">storage</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/SerialReplicationChecker.html#waitTimeMs">waitTimeMs</a></span></code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/SerialReplicationChecker.html#SerialReplicationChecker-org.apache.hadoop.conf.Configuration-org.apache.hadoop.hbase.replication.regionserver.ReplicationSource-">SerialReplicationChecker</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf,
<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationSource</a>&nbsp;source)</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>private boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/SerialReplicationChecker.html#canPush-org.apache.hadoop.hbase.wal.WAL.Entry-byte:A-">canPush</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.Entry.html" title="class in org.apache.hadoop.hbase.wal">WAL.Entry</a>&nbsp;entry,
byte[]&nbsp;row)</code>&nbsp;</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/SerialReplicationChecker.html#canPush-org.apache.hadoop.hbase.wal.WAL.Entry-org.apache.hadoop.hbase.Cell-">canPush</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.Entry.html" title="class in org.apache.hadoop.hbase.wal">WAL.Entry</a>&nbsp;entry,
<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;firstCellInEdit)</code>&nbsp;</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>private boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/SerialReplicationChecker.html#isLastRangeAndOpening-org.apache.hadoop.hbase.replication.ReplicationBarrierFamilyFormat.ReplicationBarrierResult-int-">isLastRangeAndOpening</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/replication/ReplicationBarrierFamilyFormat.ReplicationBarrierResult.html" title="class in org.apache.hadoop.hbase.replication">ReplicationBarrierFamilyFormat.ReplicationBarrierResult</a>&nbsp;barrierResult,
int&nbsp;index)</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/replication/regionserver/SerialReplicationChecker.html#isParentFinished-byte:A-">isParentFinished</a></span>(byte[]&nbsp;regionName)</code>&nbsp;</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>private boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/SerialReplicationChecker.html#isRangeFinished-long-java.lang.String-">isRangeFinished</a></span>(long&nbsp;endBarrier,
<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;encodedRegionName)</code>&nbsp;</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/SerialReplicationChecker.html#recordCanPush-java.lang.String-long-long:A-int-">recordCanPush</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;encodedNameAsString,
long&nbsp;seqId,
long[]&nbsp;barriers,
int&nbsp;index)</code>&nbsp;</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/SerialReplicationChecker.html#waitUntilCanPush-org.apache.hadoop.hbase.wal.WAL.Entry-org.apache.hadoop.hbase.Cell-">waitUntilCanPush</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.Entry.html" title="class in org.apache.hadoop.hbase.wal">WAL.Entry</a>&nbsp;entry,
<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;firstCellInEdit)</code>&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a name="LOG">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>LOG</h4>
<pre>private static final&nbsp;org.slf4j.Logger <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/SerialReplicationChecker.html#line.113">LOG</a></pre>
</li>
</ul>
<a name="REPLICATION_SERIALLY_WAITING_KEY">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>REPLICATION_SERIALLY_WAITING_KEY</h4>
<pre>public 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/replication/regionserver/SerialReplicationChecker.html#line.115">REPLICATION_SERIALLY_WAITING_KEY</a></pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.replication.regionserver.SerialReplicationChecker.REPLICATION_SERIALLY_WAITING_KEY">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="REPLICATION_SERIALLY_WAITING_DEFAULT">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>REPLICATION_SERIALLY_WAITING_DEFAULT</h4>
<pre>public static final&nbsp;long <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/SerialReplicationChecker.html#line.117">REPLICATION_SERIALLY_WAITING_DEFAULT</a></pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.replication.regionserver.SerialReplicationChecker.REPLICATION_SERIALLY_WAITING_DEFAULT">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="peerId">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>peerId</h4>
<pre>private 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/replication/regionserver/SerialReplicationChecker.html#line.119">peerId</a></pre>
</li>
</ul>
<a name="storage">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>storage</h4>
<pre>private final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/replication/ReplicationQueueStorage.html" title="interface in org.apache.hadoop.hbase.replication">ReplicationQueueStorage</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/SerialReplicationChecker.html#line.121">storage</a></pre>
</li>
</ul>
<a name="conn">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>conn</h4>
<pre>private final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/client/Connection.html" title="interface in org.apache.hadoop.hbase.client">Connection</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/SerialReplicationChecker.html#line.123">conn</a></pre>
</li>
</ul>
<a name="waitTimeMs">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>waitTimeMs</h4>
<pre>private final&nbsp;long <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/SerialReplicationChecker.html#line.125">waitTimeMs</a></pre>
</li>
</ul>
<a name="pushed">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>pushed</h4>
<pre>private final&nbsp;org.apache.hbase.thirdparty.com.google.common.cache.LoadingCache&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,org.apache.commons.lang3.mutable.MutableLong&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/SerialReplicationChecker.html#line.127">pushed</a></pre>
</li>
</ul>
<a name="canPushUnder">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>canPushUnder</h4>
<pre>private final&nbsp;org.apache.hbase.thirdparty.com.google.common.cache.Cache&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/SerialReplicationChecker.html#line.137">canPushUnder</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="SerialReplicationChecker-org.apache.hadoop.conf.Configuration-org.apache.hadoop.hbase.replication.regionserver.ReplicationSource-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>SerialReplicationChecker</h4>
<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/SerialReplicationChecker.html#line.140">SerialReplicationChecker</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationSource</a>&nbsp;source)</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="isRangeFinished-long-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isRangeFinished</h4>
<pre>private&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/SerialReplicationChecker.html#line.148">isRangeFinished</a>(long&nbsp;endBarrier,
<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;encodedRegionName)
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="isParentFinished-byte:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isParentFinished</h4>
<pre>private&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/SerialReplicationChecker.html#line.161">isParentFinished</a>(byte[]&nbsp;regionName)
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="isLastRangeAndOpening-org.apache.hadoop.hbase.replication.ReplicationBarrierFamilyFormat.ReplicationBarrierResult-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isLastRangeAndOpening</h4>
<pre>private&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/SerialReplicationChecker.html#line.172">isLastRangeAndOpening</a>(<a href="../../../../../../org/apache/hadoop/hbase/replication/ReplicationBarrierFamilyFormat.ReplicationBarrierResult.html" title="class in org.apache.hadoop.hbase.replication">ReplicationBarrierFamilyFormat.ReplicationBarrierResult</a>&nbsp;barrierResult,
int&nbsp;index)</pre>
</li>
</ul>
<a name="recordCanPush-java.lang.String-long-long:A-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>recordCanPush</h4>
<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/SerialReplicationChecker.html#line.177">recordCanPush</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;encodedNameAsString,
long&nbsp;seqId,
long[]&nbsp;barriers,
int&nbsp;index)</pre>
</li>
</ul>
<a name="canPush-org.apache.hadoop.hbase.wal.WAL.Entry-byte:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>canPush</h4>
<pre>private&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/SerialReplicationChecker.html#line.184">canPush</a>(<a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.Entry.html" title="class in org.apache.hadoop.hbase.wal">WAL.Entry</a>&nbsp;entry,
byte[]&nbsp;row)
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="canPush-org.apache.hadoop.hbase.wal.WAL.Entry-org.apache.hadoop.hbase.Cell-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>canPush</h4>
<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/SerialReplicationChecker.html#line.240">canPush</a>(<a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.Entry.html" title="class in org.apache.hadoop.hbase.wal">WAL.Entry</a>&nbsp;entry,
<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;firstCellInEdit)
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="waitUntilCanPush-org.apache.hadoop.hbase.wal.WAL.Entry-org.apache.hadoop.hbase.Cell-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>waitUntilCanPush</h4>
<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/replication/regionserver/SerialReplicationChecker.html#line.266">waitUntilCanPush</a>(<a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.Entry.html" title="class in org.apache.hadoop.hbase.wal">WAL.Entry</a>&nbsp;entry,
<a href="../../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;firstCellInEdit)
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>,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
<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>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></code></dd>
</dl>
</li>
</ul>
</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/SerialReplicationChecker.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/replication/regionserver/ReplicationThrottler.html" title="class in org.apache.hadoop.hbase.replication.regionserver"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/SerialReplicationSourceWALReader.html" title="class in org.apache.hadoop.hbase.replication.regionserver"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/replication/regionserver/SerialReplicationChecker.html" target="_top">Frames</a></li>
<li><a href="SerialReplicationChecker.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2021 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</body>
</html>