blob: 1273bbd9b3b2abc1ce75096db359c2aad1e3841a [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>SequenceIdAccounting (Apache HBase 3.0.0-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="SequenceIdAccounting (Apache HBase 3.0.0-SNAPSHOT API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":9,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/SequenceIdAccounting.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/SecureWALCellCodec.EncryptedKvEncoder.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/SyncFuture.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/SequenceIdAccounting.html" target="_top">Frames</a></li>
<li><a href="SequenceIdAccounting.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.regionserver.wal</div>
<h2 title="Class SequenceIdAccounting" class="title">Class SequenceIdAccounting</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.regionserver.wal.SequenceIdAccounting</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/regionserver/wal/SequenceIdAccounting.html#line.53">SequenceIdAccounting</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">Accounting of sequence ids per region and then by column family. So we can keep our accounting
current, call startCacheFlush and then finishedCacheFlush or abortCacheFlush so this instance can
keep abreast of the state of sequence id persistence. Also call update per append.
<p>
For the implementation, we assume that all the <code>encodedRegionName</code> passed in are gotten by
<a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html#getEncodedNameAsBytes--"><code>RegionInfo.getEncodedNameAsBytes()</code></a>. So it is safe to use
it as a hash key. And for family name, we use <a href="../../../../../../org/apache/hadoop/hbase/util/ImmutableByteArray.html" title="class in org.apache.hadoop.hbase.util"><code>ImmutableByteArray</code></a> as key. This is because
hash based map is much faster than RBTree or CSLM and here we are on the critical write path. See
HBASE-16278 for more details.
</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 <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/util/ImmutableByteArray.html" title="class in org.apache.hadoop.hbase.util">ImmutableByteArray</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;&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#flushingSequenceIds">flushingSequenceIds</a></span></code>
<div class="block">Map of encoded region names and family names to their lowest or OLDEST sequence/edit id
currently being flushed out to hfiles.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<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/regionserver/wal/SequenceIdAccounting.html#highestSequenceIds">highestSequenceIds</a></span></code>
<div class="block">
Map of region encoded names to the latest/highest region sequence id.</div>
</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/regionserver/wal/SequenceIdAccounting.html#LOG">LOG</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentMap.html?is-external=true" title="class or interface in java.util.concurrent">ConcurrentMap</a>&lt;byte[],<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentMap.html?is-external=true" title="class or interface in java.util.concurrent">ConcurrentMap</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/util/ImmutableByteArray.html" title="class in org.apache.hadoop.hbase.util">ImmutableByteArray</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;&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#lowestUnflushedSequenceIds">lowestUnflushedSequenceIds</a></span></code>
<div class="block">Map of encoded region names and family names to their OLDEST -- i.e.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private <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></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#tieLock">tieLock</a></span></code>
<div class="block">This lock ties all operations on <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#flushingSequenceIds"><code>flushingSequenceIds</code></a> and
<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#lowestUnflushedSequenceIds"><code>lowestUnflushedSequenceIds</code></a> Maps.</div>
</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/regionserver/wal/SequenceIdAccounting.html#SequenceIdAccounting--">SequenceIdAccounting</a></span>()</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="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>(package private) void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#abortCacheFlush-byte:A-">abortCacheFlush</a></span>(byte[]&nbsp;encodedRegionName)</code>&nbsp;</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>(package private) boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#areAllLower-java.util.Map-java.util.Collection-">areAllLower</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<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;&nbsp;sequenceids,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;byte[]&gt;&nbsp;keysBlocking)</code>
<div class="block">See if passed <code>sequenceids</code> are lower -- i.e.</div>
</td>
</tr>
<tr id="i2" 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/SequenceIdAccounting.html#completeCacheFlush-byte:A-long-">completeCacheFlush</a></span>(byte[]&nbsp;encodedRegionName,
long&nbsp;maxFlushedSeqId)</code>&nbsp;</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>(package private) <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<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;byte[]&gt;&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#findLower-java.util.Map-">findLower</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<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;&nbsp;sequenceids)</code>
<div class="block">Iterates over the given Map and compares sequence ids with corresponding entries in
<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#lowestUnflushedSequenceIds"><code>lowestUnflushedSequenceIds</code></a>.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>private &lt;T extends <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;?,<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;&gt;<br><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<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/regionserver/wal/SequenceIdAccounting.html#flattenToLowestSequenceId-java.util.Map-">flattenToLowestSequenceId</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],T&gt;&nbsp;src)</code>&nbsp;</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>(package private) long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#getLowestSequenceId-byte:A-">getLowestSequenceId</a></span>(byte[]&nbsp;encodedRegionName)</code>
<div class="block">Returns the lowest unflushed sequence id for the region.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>(package private) long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#getLowestSequenceId-byte:A-byte:A-">getLowestSequenceId</a></span>(byte[]&nbsp;encodedRegionName,
byte[]&nbsp;familyName)</code>&nbsp;</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>private static long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#getLowestSequenceId-java.util.Map-">getLowestSequenceId</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;?,<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;&nbsp;sequenceids)</code>&nbsp;</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>(package private) <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentMap.html?is-external=true" title="class or interface in java.util.concurrent">ConcurrentMap</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/util/ImmutableByteArray.html" title="class in org.apache.hadoop.hbase.util">ImmutableByteArray</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/regionserver/wal/SequenceIdAccounting.html#getOrCreateLowestSequenceIds-byte:A-">getOrCreateLowestSequenceIds</a></span>(byte[]&nbsp;encodedRegionName)</code>&nbsp;</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>(package private) void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#onRegionClose-byte:A-">onRegionClose</a></span>(byte[]&nbsp;encodedRegionName)</code>
<div class="block">Clear all the records of the given region as it is going to be closed.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>(package private) <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<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/regionserver/wal/SequenceIdAccounting.html#resetHighest--">resetHighest</a></span>()</code>
<div class="block">Reset the accounting of highest sequenceid by regionname.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>(package private) <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></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#startCacheFlush-byte:A-java.util.Map-">startCacheFlush</a></span>(byte[]&nbsp;encodedRegionName,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<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;&nbsp;familyToSeq)</code>&nbsp;</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>(package private) <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></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#startCacheFlush-byte:A-java.util.Set-">startCacheFlush</a></span>(byte[]&nbsp;encodedRegionName,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;byte[]&gt;&nbsp;families)</code>&nbsp;</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>(package private) void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#update-byte:A-java.util.Set-long-boolean-">update</a></span>(byte[]&nbsp;encodedRegionName,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;byte[]&gt;&nbsp;families,
long&nbsp;sequenceid,
boolean&nbsp;lowest)</code>
<div class="block">We've been passed a new sequenceid for the region.</div>
</td>
</tr>
<tr id="i14" 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/SequenceIdAccounting.html#updateStore-byte:A-byte:A-java.lang.Long-boolean-">updateStore</a></span>(byte[]&nbsp;encodedRegionName,
byte[]&nbsp;familyName,
<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>&nbsp;sequenceId,
boolean&nbsp;onlyIfGreater)</code>
<div class="block">Update the store sequence id, e.g., upon executing in-memory compaction</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a name="LOG">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>LOG</h4>
<pre>private static final&nbsp;org.slf4j.Logger <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#line.54">LOG</a></pre>
</li>
</ul>
<a name="tieLock">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>tieLock</h4>
<pre>private final&nbsp;<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> <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#line.72">tieLock</a></pre>
<div class="block">This lock ties all operations on <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#flushingSequenceIds"><code>flushingSequenceIds</code></a> and
<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#lowestUnflushedSequenceIds"><code>lowestUnflushedSequenceIds</code></a> Maps. <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#lowestUnflushedSequenceIds"><code>lowestUnflushedSequenceIds</code></a> has the
lowest outstanding sequence ids EXCEPT when flushing. When we flush, the current
lowest set for the region/column family are moved (atomically because of this lock) to
<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#flushingSequenceIds"><code>flushingSequenceIds</code></a>.
<p>The two Maps are tied by this locking object EXCEPT when we go to update the lowest
entry; see <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#lowestUnflushedSequenceIds"><code>lowestUnflushedSequenceIds</code></a>. In here is a putIfAbsent call on
<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#lowestUnflushedSequenceIds"><code>lowestUnflushedSequenceIds</code></a>. In this latter case, we will add this lowest
sequence id if we find that there is no entry for the current column family. There will be no
entry only if we just came up OR we have moved aside current set of lowest sequence ids
because the current set are being flushed (by putting them into <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#flushingSequenceIds"><code>flushingSequenceIds</code></a>).
This is how we pick up the next 'lowest' sequence id per region per column family to be used
figuring what is in the next flush.</div>
</li>
</ul>
<a name="lowestUnflushedSequenceIds">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>lowestUnflushedSequenceIds</h4>
<pre>private final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentMap.html?is-external=true" title="class or interface in java.util.concurrent">ConcurrentMap</a>&lt;byte[],<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentMap.html?is-external=true" title="class or interface in java.util.concurrent">ConcurrentMap</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/util/ImmutableByteArray.html" title="class in org.apache.hadoop.hbase.util">ImmutableByteArray</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;&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#line.86">lowestUnflushedSequenceIds</a></pre>
<div class="block">Map of encoded region names and family names to their OLDEST -- i.e. their first,
the longest-lived, their 'earliest', the 'lowest' -- sequence id.
<p>When we flush, the current lowest sequence ids get cleared and added to
<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#flushingSequenceIds"><code>flushingSequenceIds</code></a>. The next append that comes in, is then added
here to <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#lowestUnflushedSequenceIds"><code>lowestUnflushedSequenceIds</code></a> as the next lowest sequenceid.
<p>If flush fails, currently server is aborted so no need to restore previous sequence ids.
<p>Needs to be concurrent Maps because we use putIfAbsent updating oldest.</div>
</li>
</ul>
<a name="flushingSequenceIds">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>flushingSequenceIds</h4>
<pre>private final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/util/ImmutableByteArray.html" title="class in org.apache.hadoop.hbase.util">ImmutableByteArray</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;&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#line.94">flushingSequenceIds</a></pre>
<div class="block">Map of encoded region names and family names to their lowest or OLDEST sequence/edit id
currently being flushed out to hfiles. Entries are moved here from
<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#lowestUnflushedSequenceIds"><code>lowestUnflushedSequenceIds</code></a> while the lock <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#tieLock"><code>tieLock</code></a> is held
(so movement between the Maps is atomic).</div>
</li>
</ul>
<a name="highestSequenceIds">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>highestSequenceIds</h4>
<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<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/regionserver/wal/SequenceIdAccounting.html#line.107">highestSequenceIds</a></pre>
<div class="block"><p>
Map of region encoded names to the latest/highest region sequence id. Updated on each call to
append.
</p>
<p>
This map uses byte[] as the key, and uses reference equality. It works in our use case as we
use <a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html#getEncodedNameAsBytes--"><code>RegionInfo.getEncodedNameAsBytes()</code></a> as keys. For a
given region, it always returns the same array.
</p></div>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="SequenceIdAccounting--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>SequenceIdAccounting</h4>
<pre><a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#line.53">SequenceIdAccounting</a>()</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="getLowestSequenceId-byte:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getLowestSequenceId</h4>
<pre>long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#line.114">getLowestSequenceId</a>(byte[]&nbsp;encodedRegionName)</pre>
<div class="block">Returns the lowest unflushed sequence id for the region.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Lowest outstanding unflushed sequenceid for <code>encodedRegionName</code>. Will
return <a href="../../../../../../org/apache/hadoop/hbase/HConstants.html#NO_SEQNUM"><code>HConstants.NO_SEQNUM</code></a> when none.</dd>
</dl>
</li>
</ul>
<a name="getLowestSequenceId-byte:A-byte:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getLowestSequenceId</h4>
<pre>long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#line.129">getLowestSequenceId</a>(byte[]&nbsp;encodedRegionName,
byte[]&nbsp;familyName)</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Lowest outstanding unflushed sequenceid for <code>encodedRegionname</code> and
<code>familyName</code>. Returned sequenceid may be for an edit currently being
flushed.</dd>
</dl>
</li>
</ul>
<a name="resetHighest--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>resetHighest</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<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;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#line.155">resetHighest</a>()</pre>
<div class="block">Reset the accounting of highest sequenceid by regionname.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Return the previous accounting Map of regions to the last sequence id written into
each.</dd>
</dl>
</li>
</ul>
<a name="update-byte:A-java.util.Set-long-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>update</h4>
<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#line.170">update</a>(byte[]&nbsp;encodedRegionName,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;byte[]&gt;&nbsp;families,
long&nbsp;sequenceid,
boolean&nbsp;lowest)</pre>
<div class="block">We've been passed a new sequenceid for the region. Set it as highest seen for this region and
if we are to record oldest, or lowest sequenceids, save it as oldest seen if nothing
currently older.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>encodedRegionName</code> - </dd>
<dd><code>families</code> - </dd>
<dd><code>sequenceid</code> - </dd>
<dd><code>lowest</code> - Whether to keep running account of oldest sequence id.</dd>
</dl>
</li>
</ul>
<a name="onRegionClose-byte:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>onRegionClose</h4>
<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#line.192">onRegionClose</a>(byte[]&nbsp;encodedRegionName)</pre>
<div class="block">Clear all the records of the given region as it is going to be closed.
<p/>
We will call this once we get the region close marker. We need this because that, if we use
Durability.ASYNC_WAL, after calling startCacheFlush, we may still get some ongoing wal entries
that has not been processed yet, this will lead to orphan records in the
lowestUnflushedSequenceIds and then cause too many WAL files.
<p/>
See HBASE-23157 for more details.</div>
</li>
</ul>
<a name="updateStore-byte:A-byte:A-java.lang.Long-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>updateStore</h4>
<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#line.209">updateStore</a>(byte[]&nbsp;encodedRegionName,
byte[]&nbsp;familyName,
<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>&nbsp;sequenceId,
boolean&nbsp;onlyIfGreater)</pre>
<div class="block">Update the store sequence id, e.g., upon executing in-memory compaction</div>
</li>
</ul>
<a name="getOrCreateLowestSequenceIds-byte:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getOrCreateLowestSequenceIds</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentMap.html?is-external=true" title="class or interface in java.util.concurrent">ConcurrentMap</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/util/ImmutableByteArray.html" title="class in org.apache.hadoop.hbase.util">ImmutableByteArray</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;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#line.241">getOrCreateLowestSequenceIds</a>(byte[]&nbsp;encodedRegionName)</pre>
</li>
</ul>
<a name="getLowestSequenceId-java.util.Map-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getLowestSequenceId</h4>
<pre>private static&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#line.251">getLowestSequenceId</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;?,<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;&nbsp;sequenceids)</pre>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>sequenceids</code> - Map to search for lowest value.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Lowest value found in <code>sequenceids</code>.</dd>
</dl>
</li>
</ul>
<a name="flattenToLowestSequenceId-java.util.Map-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>flattenToLowestSequenceId</h4>
<pre>private&nbsp;&lt;T extends <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;?,<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;&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<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;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#line.270">flattenToLowestSequenceId</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],T&gt;&nbsp;src)</pre>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>src</code> - </dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>New Map that has same keys as <code>src</code> but instead of a Map for a value, it
instead has found the smallest sequence id and it returns that as the value instead.</dd>
</dl>
</li>
</ul>
<a name="startCacheFlush-byte:A-java.util.Set-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>startCacheFlush</h4>
<pre><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>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#line.293">startCacheFlush</a>(byte[]&nbsp;encodedRegionName,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;byte[]&gt;&nbsp;families)</pre>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>encodedRegionName</code> - Region to flush.</dd>
<dd><code>families</code> - Families to flush. May be a subset of all families in the region.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Returns <a href="../../../../../../org/apache/hadoop/hbase/HConstants.html#NO_SEQNUM"><code>HConstants.NO_SEQNUM</code></a> if we are flushing the whole region OR if
we are flushing a subset of all families but there are no edits in those families not
being flushed; in other words, this is effectively same as a flush of all of the region
though we were passed a subset of regions. Otherwise, it returns the sequence id of the
oldest/lowest outstanding edit.</dd>
</dl>
</li>
</ul>
<a name="startCacheFlush-byte:A-java.util.Map-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>startCacheFlush</h4>
<pre><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>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#line.301">startCacheFlush</a>(byte[]&nbsp;encodedRegionName,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<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;&nbsp;familyToSeq)</pre>
</li>
</ul>
<a name="completeCacheFlush-byte:A-long-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>completeCacheFlush</h4>
<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#line.356">completeCacheFlush</a>(byte[]&nbsp;encodedRegionName,
long&nbsp;maxFlushedSeqId)</pre>
</li>
</ul>
<a name="abortCacheFlush-byte:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>abortCacheFlush</h4>
<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#line.389">abortCacheFlush</a>(byte[]&nbsp;encodedRegionName)</pre>
</li>
</ul>
<a name="areAllLower-java.util.Map-java.util.Collection-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>areAllLower</h4>
<pre>boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#line.434">areAllLower</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<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;&nbsp;sequenceids,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;byte[]&gt;&nbsp;keysBlocking)</pre>
<div class="block">See if passed <code>sequenceids</code> are lower -- i.e. earlier -- than any outstanding
sequenceids, sequenceids we are holding on to in this accounting instance.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>sequenceids</code> - Keyed by encoded region name. Cannot be null (doesn't make sense for it to
be null).</dd>
<dd><code>keysBlocking</code> - An optional collection that is used to return the specific keys that are
causing this method to return false.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if all sequenceids are lower, older than, the old sequenceids in this instance.</dd>
</dl>
</li>
</ul>
<a name="findLower-java.util.Map-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>findLower</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<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;byte[]&gt;&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#line.474">findLower</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<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;&nbsp;sequenceids)</pre>
<div class="block">Iterates over the given Map and compares sequence ids with corresponding entries in
<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#lowestUnflushedSequenceIds"><code>lowestUnflushedSequenceIds</code></a>. If a region in
<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#lowestUnflushedSequenceIds"><code>lowestUnflushedSequenceIds</code></a> has a sequence id less than that passed in
<code>sequenceids</code> then return it.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>sequenceids</code> - Sequenceids keyed by encoded region name.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>stores of regions found in this instance with sequence ids less than those passed in.</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/SequenceIdAccounting.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/SecureWALCellCodec.EncryptedKvEncoder.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/SyncFuture.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/SequenceIdAccounting.html" target="_top">Frames</a></li>
<li><a href="SequenceIdAccounting.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>