blob: 68237b4564aaf508740515795aaeb5b35c5d934d [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>KeyValueHeap (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="KeyValueHeap (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};
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/KeyValueHeap.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/KeyPrefixRegionSplitRestriction.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueHeap.KVScannerComparator.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/hadoop/hbase/regionserver/KeyValueHeap.html" target="_top">Frames</a></li>
<li><a href="KeyValueHeap.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</div>
<h2 title="Class KeyValueHeap" class="title">Class KeyValueHeap</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/NonLazyKeyValueScanner.html" title="class in org.apache.hadoop.hbase.regionserver">org.apache.hadoop.hbase.regionserver.NonLazyKeyValueScanner</a></li>
<li>
<ul class="inheritance">
<li><a href="../../../../../org/apache/hadoop/hbase/regionserver/NonReversedNonLazyKeyValueScanner.html" title="class in org.apache.hadoop.hbase.regionserver">org.apache.hadoop.hbase.regionserver.NonReversedNonLazyKeyValueScanner</a></li>
<li>
<ul class="inheritance">
<li>org.apache.hadoop.hbase.regionserver.KeyValueHeap</li>
</ul>
</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/regionserver/InternalScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">InternalScanner</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/Shipper.html" title="interface in org.apache.hadoop.hbase.regionserver">Shipper</a></dd>
</dl>
<dl>
<dt>Direct Known Subclasses:</dt>
<dd><a href="../../../../../org/apache/hadoop/hbase/regionserver/ReversedKeyValueHeap.html" title="class in org.apache.hadoop.hbase.regionserver">ReversedKeyValueHeap</a></dd>
</dl>
<hr>
<br>
<pre>@InterfaceAudience.Private
public class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/KeyValueHeap.html#line.48">KeyValueHeap</a>
extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/NonReversedNonLazyKeyValueScanner.html" title="class in org.apache.hadoop.hbase.regionserver">NonReversedNonLazyKeyValueScanner</a>
implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/InternalScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">InternalScanner</a></pre>
<div class="block">Implements a heap merge across any number of KeyValueScanners.
<p>
Implements KeyValueScanner itself.
<p>
This class is used at the Region level to merge across Stores
and at the Store level to merge across the memstore and StoreFiles.
<p>
In the Region case, we also need InternalScanner.next(List), so this class
also implements InternalScanner. WARNING: As is, if you try to use this
as an InternalScanner at the Store level, you will get runtime exceptions.</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>protected static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueHeap.KVScannerComparator.html" title="class in org.apache.hadoop.hbase.regionserver">KeyValueHeap.KVScannerComparator</a></span></code>&nbsp;</td>
</tr>
</table>
</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>protected <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueHeap.KVScannerComparator.html" title="class in org.apache.hadoop.hbase.regionserver">KeyValueHeap.KVScannerComparator</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueHeap.html#comparator">comparator</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueHeap.html#current">current</a></span></code>
<div class="block">The current sub-scanner, i.e.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/util/PriorityQueue.html?is-external=true" title="class or interface in java.util">PriorityQueue</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueHeap.html#heap">heap</a></span></code>&nbsp;</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/KeyValueHeap.html#LOG">LOG</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected <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/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueHeap.html#scannersForDelayedClose">scannersForDelayedClose</a></span></code>&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="fields.inherited.from.class.org.apache.hadoop.hbase.regionserver.KeyValueScanner">
<!-- -->
</a>
<h3>Fields inherited from interface&nbsp;org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a></h3>
<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html#NO_NEXT_INDEXED_KEY">NO_NEXT_INDEXED_KEY</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/KeyValueHeap.html#KeyValueHeap-java.util.List-org.apache.hadoop.hbase.CellComparator-">KeyValueHeap</a></span>(<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;? extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>&gt;&nbsp;scanners,
<a href="../../../../../org/apache/hadoop/hbase/CellComparator.html" title="interface in org.apache.hadoop.hbase">CellComparator</a>&nbsp;comparator)</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/KeyValueHeap.html#KeyValueHeap-java.util.List-org.apache.hadoop.hbase.regionserver.KeyValueHeap.KVScannerComparator-">KeyValueHeap</a></span>(<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;? extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>&gt;&nbsp;scanners,
<a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueHeap.KVScannerComparator.html" title="class in org.apache.hadoop.hbase.regionserver">KeyValueHeap.KVScannerComparator</a>&nbsp;comparator)</code>
<div class="block">Constructor.</div>
</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>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueHeap.html#close--">close</a></span>()</code>
<div class="block">Close the KeyValue scanner.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>private boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueHeap.html#generalizedSeek-boolean-org.apache.hadoop.hbase.Cell-boolean-boolean-">generalizedSeek</a></span>(boolean&nbsp;isLazy,
<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;seekKey,
boolean&nbsp;forward,
boolean&nbsp;useBloom)</code>&nbsp;</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>(package private) <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueHeap.html#getCurrentForTesting--">getCurrentForTesting</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/PriorityQueue.html?is-external=true" title="class or interface in java.util">PriorityQueue</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueHeap.html#getHeap--">getHeap</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueHeap.html#getNextIndexedKey--">getNextIndexedKey</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i5" 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/KeyValueHeap.html#isLatestCellFromMemstore--">isLatestCellFromMemstore</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueHeap.html#next--">next</a></span>()</code>
<div class="block">Return the next Cell in this scanner, iterating the scanner</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueHeap.html#next-java.util.List-org.apache.hadoop.hbase.regionserver.ScannerContext-">next</a></span>(<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/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&gt;&nbsp;result,
<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.html" title="class in org.apache.hadoop.hbase.regionserver">ScannerContext</a>&nbsp;scannerContext)</code>
<div class="block">Gets the next row of keys from the top-most scanner.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueHeap.html#peek--">peek</a></span>()</code>
<div class="block">Look at the next Cell in this scanner, but do not iterate scanner.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>protected <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueHeap.html#pollRealKV--">pollRealKV</a></span>()</code>
<div class="block">Fetches the top sub-scanner from the priority queue, ensuring that a real
seek has been done on it.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueHeap.html#requestSeek-org.apache.hadoop.hbase.Cell-boolean-boolean-">requestSeek</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;key,
boolean&nbsp;forward,
boolean&nbsp;useBloom)</code>
<div class="block">Similar to <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html#seek-org.apache.hadoop.hbase.Cell-"><code>KeyValueScanner.seek(org.apache.hadoop.hbase.Cell)</code></a> (or <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html#reseek-org.apache.hadoop.hbase.Cell-"><code>KeyValueScanner.reseek(org.apache.hadoop.hbase.Cell)</code></a> if forward is true) but only
does a seek operation after checking that it is really necessary for the
row/column combination specified by the kv parameter.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueHeap.html#reseek-org.apache.hadoop.hbase.Cell-">reseek</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;seekKey)</code>
<div class="block">This function is identical to the <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueHeap.html#seek-org.apache.hadoop.hbase.Cell-"><code>seek(Cell)</code></a> function except
that scanner.seek(seekKey) is changed to scanner.reseek(seekKey).</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueHeap.html#seek-org.apache.hadoop.hbase.Cell-">seek</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;seekKey)</code>
<div class="block">Seeks all scanners at or below the specified seek key.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueHeap.html#shipped--">shipped</a></span>()</code>
<div class="block">Called after a batch of rows scanned and set to be returned to client.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.regionserver.NonReversedNonLazyKeyValueScanner">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/NonReversedNonLazyKeyValueScanner.html" title="class in org.apache.hadoop.hbase.regionserver">NonReversedNonLazyKeyValueScanner</a></h3>
<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/NonReversedNonLazyKeyValueScanner.html#backwardSeek-org.apache.hadoop.hbase.Cell-">backwardSeek</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/NonReversedNonLazyKeyValueScanner.html#seekToLastRow--">seekToLastRow</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/NonReversedNonLazyKeyValueScanner.html#seekToPreviousRow-org.apache.hadoop.hbase.Cell-">seekToPreviousRow</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.regionserver.NonLazyKeyValueScanner">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/NonLazyKeyValueScanner.html" title="class in org.apache.hadoop.hbase.regionserver">NonLazyKeyValueScanner</a></h3>
<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/NonLazyKeyValueScanner.html#doRealSeek-org.apache.hadoop.hbase.regionserver.KeyValueScanner-org.apache.hadoop.hbase.Cell-boolean-">doRealSeek</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/NonLazyKeyValueScanner.html#enforceSeek--">enforceSeek</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/NonLazyKeyValueScanner.html#getFilePath--">getFilePath</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/NonLazyKeyValueScanner.html#isFileScanner--">isFileScanner</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/NonLazyKeyValueScanner.html#realSeekDone--">realSeekDone</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/NonLazyKeyValueScanner.html#shouldUseScanner-org.apache.hadoop.hbase.client.Scan-org.apache.hadoop.hbase.regionserver.HStore-long-">shouldUseScanner</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#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>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.regionserver.KeyValueScanner">
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a></h3>
<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html#backwardSeek-org.apache.hadoop.hbase.Cell-">backwardSeek</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html#enforceSeek--">enforceSeek</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html#getFilePath--">getFilePath</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html#getScannerOrder--">getScannerOrder</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html#isFileScanner--">isFileScanner</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html#realSeekDone--">realSeekDone</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html#seekToLastRow--">seekToLastRow</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html#seekToPreviousRow-org.apache.hadoop.hbase.Cell-">seekToPreviousRow</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html#shouldUseScanner-org.apache.hadoop.hbase.client.Scan-org.apache.hadoop.hbase.regionserver.HStore-long-">shouldUseScanner</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.regionserver.InternalScanner">
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/InternalScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">InternalScanner</a></h3>
<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/InternalScanner.html#next-java.util.List-">next</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/KeyValueHeap.html#line.50">LOG</a></pre>
</li>
</ul>
<a name="heap">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>heap</h4>
<pre>protected&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/PriorityQueue.html?is-external=true" title="class or interface in java.util">PriorityQueue</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/KeyValueHeap.html#line.51">heap</a></pre>
</li>
</ul>
<a name="scannersForDelayedClose">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>scannersForDelayedClose</h4>
<pre>protected&nbsp;<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/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/KeyValueHeap.html#line.55">scannersForDelayedClose</a></pre>
</li>
</ul>
<a name="current">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>current</h4>
<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/KeyValueHeap.html#line.67">current</a></pre>
<div class="block">The current sub-scanner, i.e. the one that contains the next key/value
to return to the client. This scanner is NOT included in <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueHeap.html#heap"><code>heap</code></a>
(but we frequently add it back to the heap and pull the new winner out).
We maintain an invariant that the current sub-scanner has already done
a real seek, and that current.peek() is always a real key/value (or null)
except for the fake last-key-on-row-column supplied by the multi-column
Bloom filter optimization, which is OK to propagate to StoreScanner. In
order to ensure that, always use <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueHeap.html#pollRealKV--"><code>pollRealKV()</code></a> to update current.</div>
</li>
</ul>
<a name="comparator">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>comparator</h4>
<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueHeap.KVScannerComparator.html" title="class in org.apache.hadoop.hbase.regionserver">KeyValueHeap.KVScannerComparator</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/KeyValueHeap.html#line.69">comparator</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="KeyValueHeap-java.util.List-org.apache.hadoop.hbase.CellComparator-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>KeyValueHeap</h4>
<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/KeyValueHeap.html#line.77">KeyValueHeap</a>(<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;? extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>&gt;&nbsp;scanners,
<a href="../../../../../org/apache/hadoop/hbase/CellComparator.html" title="interface in org.apache.hadoop.hbase">CellComparator</a>&nbsp;comparator)
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. This KeyValueHeap will handle closing of passed in
KeyValueScanners.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>scanners</code> - </dd>
<dd><code>comparator</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="KeyValueHeap-java.util.List-org.apache.hadoop.hbase.regionserver.KeyValueHeap.KVScannerComparator-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>KeyValueHeap</h4>
<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/KeyValueHeap.html#line.88">KeyValueHeap</a>(<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;? extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>&gt;&nbsp;scanners,
<a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueHeap.KVScannerComparator.html" title="class in org.apache.hadoop.hbase.regionserver">KeyValueHeap.KVScannerComparator</a>&nbsp;comparator)
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>scanners</code> - </dd>
<dd><code>comparator</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>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="peek--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>peek</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/KeyValueHeap.html#line.106">peek</a>()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html#peek--">KeyValueScanner</a></code></span></div>
<div class="block">Look at the next Cell in this scanner, but do not iterate scanner.
NOTICE: The returned cell has not been passed into ScanQueryMatcher. So it may not be what the
user need.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html#peek--">peek</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the next Cell</dd>
</dl>
</li>
</ul>
<a name="isLatestCellFromMemstore--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isLatestCellFromMemstore</h4>
<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/KeyValueHeap.html#line.113">isLatestCellFromMemstore</a>()</pre>
</li>
</ul>
<a name="next--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>next</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/KeyValueHeap.html#line.118">next</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>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html#next--">KeyValueScanner</a></code></span></div>
<div class="block">Return the next Cell in this scanner, iterating the scanner</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html#next--">next</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the next Cell</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="next-java.util.List-org.apache.hadoop.hbase.regionserver.ScannerContext-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>next</h4>
<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/KeyValueHeap.html#line.150">next</a>(<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/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&gt;&nbsp;result,
<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.html" title="class in org.apache.hadoop.hbase.regionserver">ScannerContext</a>&nbsp;scannerContext)
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">Gets the next row of keys from the top-most scanner.
<p>
This method takes care of updating the heap.
<p>
This can ONLY be called when you are using Scanners that implement InternalScanner as well as
KeyValueScanner (a <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html" title="class in org.apache.hadoop.hbase.regionserver"><code>StoreScanner</code></a>).</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/InternalScanner.html#next-java.util.List-org.apache.hadoop.hbase.regionserver.ScannerContext-">next</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/InternalScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">InternalScanner</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>result</code> - return output array</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if more rows exist after this one, false if scanner is done</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> - e</dd>
</dl>
</li>
</ul>
<a name="close--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>close</h4>
<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/KeyValueHeap.html#line.220">close</a>()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html#close--">KeyValueScanner</a></code></span></div>
<div class="block">Close the KeyValue scanner.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Closeable.html?is-external=true#close--" title="class or interface in java.io">close</a></code>&nbsp;in interface&nbsp;<code><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></code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/AutoCloseable.html?is-external=true#close--" title="class or interface in java.lang">close</a></code>&nbsp;in interface&nbsp;<code><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></code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/InternalScanner.html#close--">close</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/InternalScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">InternalScanner</a></code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html#close--">close</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a></code></dd>
</dl>
</li>
</ul>
<a name="seek-org.apache.hadoop.hbase.Cell-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>seek</h4>
<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/KeyValueHeap.html#line.252">seek</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;seekKey)
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">Seeks all scanners at or below the specified seek key. If we earlied-out
of a row, we may end up skipping values that were never reached yet.
Rather than iterating down, we want to give the opportunity to re-seek.
<p>
As individual scanners may run past their ends, those scanners are
automatically closed and removed from the heap.
<p>
This function (and <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueHeap.html#reseek-org.apache.hadoop.hbase.Cell-"><code>reseek(Cell)</code></a>) does not do multi-column
Bloom filter and lazy-seek optimizations. To enable those, call
<a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueHeap.html#requestSeek-org.apache.hadoop.hbase.Cell-boolean-boolean-"><code>requestSeek(Cell, boolean, boolean)</code></a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html#seek-org.apache.hadoop.hbase.Cell-">seek</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>seekKey</code> - KeyValue to seek at or after</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if KeyValues exist at or after specified key, false if not</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="reseek-org.apache.hadoop.hbase.Cell-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>reseek</h4>
<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/KeyValueHeap.html#line.264">reseek</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;seekKey)
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 function is identical to the <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueHeap.html#seek-org.apache.hadoop.hbase.Cell-"><code>seek(Cell)</code></a> function except
that scanner.seek(seekKey) is changed to scanner.reseek(seekKey).</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html#reseek-org.apache.hadoop.hbase.Cell-">reseek</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>seekKey</code> - seek value (should be non-null)</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if scanner has values left, false if end of scanner</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="requestSeek-org.apache.hadoop.hbase.Cell-boolean-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>requestSeek</h4>
<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/KeyValueHeap.html#line.275">requestSeek</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;key,
boolean&nbsp;forward,
boolean&nbsp;useBloom)
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">Similar to <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html#seek-org.apache.hadoop.hbase.Cell-"><code>KeyValueScanner.seek(org.apache.hadoop.hbase.Cell)</code></a> (or <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html#reseek-org.apache.hadoop.hbase.Cell-"><code>KeyValueScanner.reseek(org.apache.hadoop.hbase.Cell)</code></a> if forward is true) but only
does a seek operation after checking that it is really necessary for the
row/column combination specified by the kv parameter. This function was
added to avoid unnecessary disk seeks by checking row-column Bloom filters
before a seek on multi-column get/scan queries, and to optimize by looking
up more recent files first.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html#requestSeek-org.apache.hadoop.hbase.Cell-boolean-boolean-">requestSeek</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a></code></dd>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/NonLazyKeyValueScanner.html#requestSeek-org.apache.hadoop.hbase.Cell-boolean-boolean-">requestSeek</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/NonLazyKeyValueScanner.html" title="class in org.apache.hadoop.hbase.regionserver">NonLazyKeyValueScanner</a></code></dd>
<dd><code>forward</code> - do a forward-only "reseek" instead of a random-access seek</dd>
<dd><code>useBloom</code> - whether to enable multi-column Bloom filter optimization</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="generalizedSeek-boolean-org.apache.hadoop.hbase.Cell-boolean-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>generalizedSeek</h4>
<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/KeyValueHeap.html#line.288">generalizedSeek</a>(boolean&nbsp;isLazy,
<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;seekKey,
boolean&nbsp;forward,
boolean&nbsp;useBloom)
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="paramLabel">Parameters:</span></dt>
<dd><code>isLazy</code> - whether we are trying to seek to exactly the given row/col.
Enables Bloom filter and most-recent-file-first optimizations for
multi-column get/scan queries.</dd>
<dd><code>seekKey</code> - key to seek to</dd>
<dd><code>forward</code> - whether to seek forward (also known as reseek)</dd>
<dd><code>useBloom</code> - whether to optimize seeks using Bloom filters</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="pollRealKV--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>pollRealKV</h4>
<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/KeyValueHeap.html#line.362">pollRealKV</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>
<div class="block">Fetches the top sub-scanner from the priority queue, ensuring that a real
seek has been done on it. Works by fetching the top sub-scanner, and if it
has not done a real seek, making it do so (which will modify its top KV),
putting it back, and repeating this until success. Relies on the fact that
on a lazy seek we set the current key of a StoreFileScanner to a KV that
is not greater than the real next KV to be read from that file, so the
scanner that bubbles up to the top of the heap will have global next KV in
this scanner heap if (1) it has done a real seek and (2) its KV is the top
among all top KVs (some of which are fake) in the scanner heap.</div>
<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="getHeap--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getHeap</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/PriorityQueue.html?is-external=true" title="class or interface in java.util">PriorityQueue</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/KeyValueHeap.html#line.416">getHeap</a>()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the current Heap</dd>
</dl>
</li>
</ul>
<a name="getCurrentForTesting--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCurrentForTesting</h4>
<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/KeyValueHeap.html#line.420">getCurrentForTesting</a>()</pre>
</li>
</ul>
<a name="getNextIndexedKey--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getNextIndexedKey</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/KeyValueHeap.html#line.425">getNextIndexedKey</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html#getNextIndexedKey--">getNextIndexedKey</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a></code></dd>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/NonLazyKeyValueScanner.html#getNextIndexedKey--">getNextIndexedKey</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/NonLazyKeyValueScanner.html" title="class in org.apache.hadoop.hbase.regionserver">NonLazyKeyValueScanner</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the next key in the index, usually the first key of next block OR a key that falls
between last key of current block and first key of next block..
see HFileWriterImpl#getMidpoint, or null if not known.</dd>
</dl>
</li>
</ul>
<a name="shipped--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>shipped</h4>
<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/KeyValueHeap.html#line.431">shipped</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>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Shipper.html#shipped--">Shipper</a></code></span></div>
<div class="block">Called after a batch of rows scanned and set to be returned to client. Any in between cleanup
can be done here.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Shipper.html#shipped--">shipped</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Shipper.html" title="interface in org.apache.hadoop.hbase.regionserver">Shipper</a></code></dd>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/NonLazyKeyValueScanner.html#shipped--">shipped</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/NonLazyKeyValueScanner.html" title="class in org.apache.hadoop.hbase.regionserver">NonLazyKeyValueScanner</a></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>
</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/KeyValueHeap.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/KeyPrefixRegionSplitRestriction.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueHeap.KVScannerComparator.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/hadoop/hbase/regionserver/KeyValueHeap.html" target="_top">Frames</a></li>
<li><a href="KeyValueHeap.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>