blob: fbba5de707be73716dea7687cdec71101a808149 [file] [log] [blame]
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>SegmentScanner (Apache HBase 4.0.0-alpha-1-SNAPSHOT API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: package: org.apache.hadoop.hbase.regionserver, class: SegmentScanner">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../script-dir/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jquery-3.6.1.min.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="class-declaration-page">
<script type="text/javascript">var evenRowColor = "even-row-color";
var oddRowColor = "odd-row-color";
var tableTab = "table-tab";
var activeTableTab = "active-table-tab";
var pathtoroot = "../../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top">
<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="nav-bar-cell1-rev">Class</li>
<li><a href="class-use/SegmentScanner.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#class">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div>
<ul class="sub-nav-list">
<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="sub-nav-list">
<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>
<div class="nav-list-search"><label for="search-input">SEARCH:</label>
<input type="text" id="search-input" value="search" disabled="disabled">
<input type="reset" id="reset-button" value="reset" disabled="disabled">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">org.apache.hadoop.hbase.regionserver</a></div>
<h1 title="Class SegmentScanner" class="title">Class SegmentScanner</h1>
</div>
<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
<div class="inheritance">org.apache.hadoop.hbase.regionserver.SegmentScanner</div>
</div>
<section class="class-description" id="class-description">
<dl class="notes">
<dt>All Implemented Interfaces:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/Closeable.html" title="class or interface in java.io" class="external-link">Closeable</a></code>, <code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/AutoCloseable.html" title="class or interface in java.lang" class="external-link">AutoCloseable</a></code>, <code><a href="KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a></code>, <code><a href="Shipper.html" title="interface in org.apache.hadoop.hbase.regionserver">Shipper</a></code></dd>
</dl>
<hr>
<div class="type-signature"><span class="annotations">@Private
</span><span class="modifiers">public class </span><span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/SegmentScanner.html#line-35">SegmentScanner</a></span>
<span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a>
implements <a href="KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a></span></div>
<div class="block">A scanner of a single memstore segment.</div>
</section>
<section class="summary">
<ul class="summary-list">
<!-- =========== FIELD SUMMARY =========== -->
<li>
<section class="field-summary" id="field-summary">
<h2>Field Summary</h2>
<div class="caption"><span>Fields</span></div>
<div class="summary-table three-column-summary">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Field</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><code>protected boolean</code></div>
<div class="col-second even-row-color"><code><a href="#closed" class="member-name-link">closed</a></code></div>
<div class="col-last even-row-color">&nbsp;</div>
<div class="col-first odd-row-color"><code>protected <a href="../ExtendedCell.html" title="interface in org.apache.hadoop.hbase">ExtendedCell</a></code></div>
<div class="col-second odd-row-color"><code><a href="#current" class="member-name-link">current</a></code></div>
<div class="col-last odd-row-color">&nbsp;</div>
<div class="col-first even-row-color"><code>protected <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Iterator.html" title="class or interface in java.util" class="external-link">Iterator</a>&lt;<a href="../ExtendedCell.html" title="interface in org.apache.hadoop.hbase">ExtendedCell</a>&gt;</code></div>
<div class="col-second even-row-color"><code><a href="#iter" class="member-name-link">iter</a></code></div>
<div class="col-last even-row-color">&nbsp;</div>
<div class="col-first odd-row-color"><code>private <a href="../ExtendedCell.html" title="interface in org.apache.hadoop.hbase">ExtendedCell</a></code></div>
<div class="col-second odd-row-color"><code><a href="#last" class="member-name-link">last</a></code></div>
<div class="col-last odd-row-color">&nbsp;</div>
<div class="col-first even-row-color"><code>private long</code></div>
<div class="col-second even-row-color"><code><a href="#readPoint" class="member-name-link">readPoint</a></code></div>
<div class="col-last even-row-color">&nbsp;</div>
<div class="col-first odd-row-color"><code>protected final <a href="Segment.html" title="class in org.apache.hadoop.hbase.regionserver">Segment</a></code></div>
<div class="col-second odd-row-color"><code><a href="#segment" class="member-name-link">segment</a></code></div>
<div class="col-last odd-row-color">&nbsp;</div>
<div class="col-first even-row-color"><code>private boolean</code></div>
<div class="col-second even-row-color"><code><a href="#stopSkippingKVsIfNextRow" class="member-name-link">stopSkippingKVsIfNextRow</a></code></div>
<div class="col-last even-row-color">&nbsp;</div>
<div class="col-first odd-row-color"><code>private <a href="../ExtendedCell.html" title="interface in org.apache.hadoop.hbase">ExtendedCell</a></code></div>
<div class="col-second odd-row-color"><code><a href="#stopSkippingKVsRow" class="member-name-link">stopSkippingKVsRow</a></code></div>
<div class="col-last odd-row-color">&nbsp;</div>
</div>
<div class="inherited-list">
<h3 id="fields-inherited-from-class-org.apache.hadoop.hbase.regionserver.KeyValueScanner">Fields inherited from interface&nbsp;org.apache.hadoop.hbase.regionserver.<a href="KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a></h3>
<code><a href="KeyValueScanner.html#NO_NEXT_INDEXED_KEY">NO_NEXT_INDEXED_KEY</a></code></div>
</section>
</li>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<li>
<section class="constructor-summary" id="constructor-summary">
<h2>Constructor Summary</h2>
<div class="caption"><span>Constructors</span></div>
<div class="summary-table three-column-summary">
<div class="table-header col-first">Modifier</div>
<div class="table-header col-second">Constructor</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><code>protected </code></div>
<div class="col-constructor-name even-row-color"><code><a href="#%3Cinit%3E(org.apache.hadoop.hbase.regionserver.Segment,long)" class="member-name-link">SegmentScanner</a><wbr>(<a href="Segment.html" title="class in org.apache.hadoop.hbase.regionserver">Segment</a>&nbsp;segment,
long&nbsp;readPoint)</code></div>
<div class="col-last even-row-color">
<div class="block">Scanners are ordered from 0 (oldest) to newest in increasing order.</div>
</div>
</div>
</section>
</li>
<!-- ========== METHOD SUMMARY =========== -->
<li>
<section class="method-summary" id="method-summary">
<h2>Method Summary</h2>
<div id="method-summary-table">
<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div>
<div id="method-summary-table.tabpanel" role="tabpanel">
<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Method</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#backwardSeek(org.apache.hadoop.hbase.ExtendedCell)" class="member-name-link">backwardSeek</a><wbr>(<a href="../ExtendedCell.html" title="interface in org.apache.hadoop.hbase">ExtendedCell</a>&nbsp;key)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Seek the scanner at or before the row of specified Cell, it firstly tries to seek the scanner
at or after the specified Cell, return if peek KeyValue of scanner has the same row with
specified Cell, otherwise seek the scanner at the first Cell of the row which is the previous
row of specified KeyValue</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#close()" class="member-name-link">close</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Close the KeyValue scanner.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#enforceSeek()" class="member-name-link">enforceSeek</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">This function should be never called on scanners that always do real seek operations (i.e.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>org.apache.hadoop.fs.Path</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getFilePath()" class="member-name-link">getFilePath</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>private <a href="../ExtendedCell.html" title="interface in org.apache.hadoop.hbase">ExtendedCell</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getHighest(org.apache.hadoop.hbase.ExtendedCell,org.apache.hadoop.hbase.ExtendedCell)" class="member-name-link">getHighest</a><wbr>(<a href="../ExtendedCell.html" title="interface in org.apache.hadoop.hbase">ExtendedCell</a>&nbsp;first,
<a href="../ExtendedCell.html" title="interface in org.apache.hadoop.hbase">ExtendedCell</a>&nbsp;second)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Private internal method that returns the higher of the two key values, or null if they are both
null</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>protected <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Iterator.html" title="class or interface in java.util" class="external-link">Iterator</a>&lt;<a href="../ExtendedCell.html" title="interface in org.apache.hadoop.hbase">ExtendedCell</a>&gt;</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getIterator(org.apache.hadoop.hbase.ExtendedCell)" class="member-name-link">getIterator</a><wbr>(<a href="../ExtendedCell.html" title="interface in org.apache.hadoop.hbase">ExtendedCell</a>&nbsp;cell)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="../ExtendedCell.html" title="interface in org.apache.hadoop.hbase">ExtendedCell</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getNextIndexedKey()" class="member-name-link">getNextIndexedKey</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>private <a href="Segment.html" title="class in org.apache.hadoop.hbase.regionserver">Segment</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getSegment()" class="member-name-link">getSegment</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Private Methods</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#isFileScanner()" class="member-name-link">isFileScanner</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns true if this is a file scanner.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="../ExtendedCell.html" title="interface in org.apache.hadoop.hbase">ExtendedCell</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#next()" class="member-name-link">next</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Return the next Cell in this scanner, iterating the scanner</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="../ExtendedCell.html" title="interface in org.apache.hadoop.hbase">ExtendedCell</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#peek()" class="member-name-link">peek</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Look at the next Cell in this scanner, but do not iterate the scanner</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#realSeekDone()" class="member-name-link">realSeekDone</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">This scanner is working solely on the in-memory MemStore and doesn't work on store files,
MutableCellSetSegmentScanner always does the seek, therefore always returning true.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#recordBlockSize(java.util.function.IntConsumer)" class="member-name-link">recordBlockSize</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/function/IntConsumer.html" title="class or interface in java.util.function" class="external-link">IntConsumer</a>&nbsp;blockSizeConsumer)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Record the size of the current block in bytes, passing as an argument to the blockSizeConsumer.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#requestSeek(org.apache.hadoop.hbase.ExtendedCell,boolean,boolean)" class="member-name-link">requestSeek</a><wbr>(<a href="../ExtendedCell.html" title="interface in org.apache.hadoop.hbase">ExtendedCell</a>&nbsp;c,
boolean&nbsp;forward,
boolean&nbsp;useBloom)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Similar to <a href="KeyValueScanner.html#seek(org.apache.hadoop.hbase.ExtendedCell)"><code>KeyValueScanner.seek(org.apache.hadoop.hbase.ExtendedCell)</code></a> (or <a href="KeyValueScanner.html#reseek(org.apache.hadoop.hbase.ExtendedCell)"><code>KeyValueScanner.reseek(org.apache.hadoop.hbase.ExtendedCell)</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>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#reseek(org.apache.hadoop.hbase.ExtendedCell)" class="member-name-link">reseek</a><wbr>(<a href="../ExtendedCell.html" title="interface in org.apache.hadoop.hbase">ExtendedCell</a>&nbsp;cell)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Reseek the scanner at or after the specified KeyValue.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#seek(org.apache.hadoop.hbase.ExtendedCell)" class="member-name-link">seek</a><wbr>(<a href="../ExtendedCell.html" title="interface in org.apache.hadoop.hbase">ExtendedCell</a>&nbsp;cell)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Seek the scanner at or after the specified Cell.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#seekToLastRow()" class="member-name-link">seekToLastRow</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Seek the scanner at the first KeyValue of last row</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#seekToPreviousRow(org.apache.hadoop.hbase.ExtendedCell)" class="member-name-link">seekToPreviousRow</a><wbr>(<a href="../ExtendedCell.html" title="interface in org.apache.hadoop.hbase">ExtendedCell</a>&nbsp;cell)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Seek the scanner at the first Cell of the row which is the previous row of specified key</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#shipped()" class="member-name-link">shipped</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Called after a batch of rows scanned (RPC) and set to be returned to client.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#shouldUseScanner(org.apache.hadoop.hbase.client.Scan,org.apache.hadoop.hbase.regionserver.HStore,long)" class="member-name-link">shouldUseScanner</a><wbr>(<a href="../client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;scan,
<a href="HStore.html" title="class in org.apache.hadoop.hbase.regionserver">HStore</a>&nbsp;store,
long&nbsp;oldestUnexpiredTS)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">This functionality should be resolved in the higher level which is MemStoreScanner, currently
returns true as default.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#toString()" class="member-name-link">toString</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>protected void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#updateCurrent()" class="member-name-link">updateCurrent</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Private internal method for iterating over the segment, skipping the cells with irrelevant MVCC</div>
</div>
</div>
</div>
</div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
<code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#finalize()" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-org.apache.hadoop.hbase.regionserver.KeyValueScanner">Methods inherited from interface&nbsp;org.apache.hadoop.hbase.regionserver.<a href="KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a></h3>
<code><a href="KeyValueScanner.html#getScannerOrder()">getScannerOrder</a></code></div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="details-list">
<!-- ============ FIELD DETAIL =========== -->
<li>
<section class="field-details" id="field-detail">
<h2>Field Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="segment">
<h3>segment</h3>
<div class="member-signature"><span class="modifiers">protected final</span>&nbsp;<span class="return-type"><a href="Segment.html" title="class in org.apache.hadoop.hbase.regionserver">Segment</a></span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/SegmentScanner.html#line-39">segment</a></span></div>
</section>
</li>
<li>
<section class="detail" id="readPoint">
<h3>readPoint</h3>
<div class="member-signature"><span class="modifiers">private</span>&nbsp;<span class="return-type">long</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/SegmentScanner.html#line-41">readPoint</a></span></div>
</section>
</li>
<li>
<section class="detail" id="iter">
<h3>iter</h3>
<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Iterator.html" title="class or interface in java.util" class="external-link">Iterator</a>&lt;<a href="../ExtendedCell.html" title="interface in org.apache.hadoop.hbase">ExtendedCell</a>&gt;</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/SegmentScanner.html#line-44">iter</a></span></div>
</section>
</li>
<li>
<section class="detail" id="current">
<h3>current</h3>
<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="return-type"><a href="../ExtendedCell.html" title="interface in org.apache.hadoop.hbase">ExtendedCell</a></span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/SegmentScanner.html#line-46">current</a></span></div>
</section>
</li>
<li>
<section class="detail" id="stopSkippingKVsIfNextRow">
<h3>stopSkippingKVsIfNextRow</h3>
<div class="member-signature"><span class="modifiers">private</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/SegmentScanner.html#line-50">stopSkippingKVsIfNextRow</a></span></div>
</section>
</li>
<li>
<section class="detail" id="stopSkippingKVsRow">
<h3>stopSkippingKVsRow</h3>
<div class="member-signature"><span class="modifiers">private</span>&nbsp;<span class="return-type"><a href="../ExtendedCell.html" title="interface in org.apache.hadoop.hbase">ExtendedCell</a></span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/SegmentScanner.html#line-52">stopSkippingKVsRow</a></span></div>
</section>
</li>
<li>
<section class="detail" id="last">
<h3>last</h3>
<div class="member-signature"><span class="modifiers">private</span>&nbsp;<span class="return-type"><a href="../ExtendedCell.html" title="interface in org.apache.hadoop.hbase">ExtendedCell</a></span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/SegmentScanner.html#line-54">last</a></span></div>
</section>
</li>
<li>
<section class="detail" id="closed">
<h3>closed</h3>
<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/SegmentScanner.html#line-57">closed</a></span></div>
</section>
</li>
</ul>
</section>
</li>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<li>
<section class="constructor-details" id="constructor-detail">
<h2>Constructor Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="&lt;init&gt;(org.apache.hadoop.hbase.regionserver.Segment,long)">
<h3>SegmentScanner</h3>
<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/SegmentScanner.html#line-62">SegmentScanner</a></span><wbr><span class="parameters">(<a href="Segment.html" title="class in org.apache.hadoop.hbase.regionserver">Segment</a>&nbsp;segment,
long&nbsp;readPoint)</span></div>
<div class="block">Scanners are ordered from 0 (oldest) to newest in increasing order.</div>
</section>
</li>
</ul>
</section>
</li>
<!-- ============ METHOD DETAIL ========== -->
<li>
<section class="method-details" id="method-detail">
<h2>Method Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="peek()">
<h3>peek</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="../ExtendedCell.html" title="interface in org.apache.hadoop.hbase">ExtendedCell</a></span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/SegmentScanner.html#line-80">peek</a></span>()</div>
<div class="block">Look at the next Cell in this scanner, but do not iterate the scanner</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="KeyValueScanner.html#peek()">peek</a></code>&nbsp;in interface&nbsp;<code><a href="KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a></code></dd>
<dt>Returns:</dt>
<dd>the currently observed Cell</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="next()">
<h3>next</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="../ExtendedCell.html" title="interface in org.apache.hadoop.hbase">ExtendedCell</a></span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/SegmentScanner.html#line-96">next</a></span>()
throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link">IOException</a></span></div>
<div class="block">Return the next Cell in this scanner, iterating the scanner</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="KeyValueScanner.html#next()">next</a></code>&nbsp;in interface&nbsp;<code><a href="KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a></code></dd>
<dt>Returns:</dt>
<dd>the next Cell or null if end of scanner</dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link">IOException</a></code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="seek(org.apache.hadoop.hbase.ExtendedCell)">
<h3>seek</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/SegmentScanner.html#line-111">seek</a></span><wbr><span class="parameters">(<a href="../ExtendedCell.html" title="interface in org.apache.hadoop.hbase">ExtendedCell</a>&nbsp;cell)</span>
throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link">IOException</a></span></div>
<div class="block">Seek the scanner at or after the specified Cell.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="KeyValueScanner.html#seek(org.apache.hadoop.hbase.ExtendedCell)">seek</a></code>&nbsp;in interface&nbsp;<code><a href="KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a></code></dd>
<dt>Parameters:</dt>
<dd><code>cell</code> - seek value</dd>
<dt>Returns:</dt>
<dd>true if scanner has values left, false if end of scanner</dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link">IOException</a></code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getIterator(org.apache.hadoop.hbase.ExtendedCell)">
<h3>getIterator</h3>
<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Iterator.html" title="class or interface in java.util" class="external-link">Iterator</a>&lt;<a href="../ExtendedCell.html" title="interface in org.apache.hadoop.hbase">ExtendedCell</a>&gt;</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/SegmentScanner.html#line-128">getIterator</a></span><wbr><span class="parameters">(<a href="../ExtendedCell.html" title="interface in org.apache.hadoop.hbase">ExtendedCell</a>&nbsp;cell)</span></div>
</section>
</li>
<li>
<section class="detail" id="reseek(org.apache.hadoop.hbase.ExtendedCell)">
<h3>reseek</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/SegmentScanner.html#line-139">reseek</a></span><wbr><span class="parameters">(<a href="../ExtendedCell.html" title="interface in org.apache.hadoop.hbase">ExtendedCell</a>&nbsp;cell)</span>
throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link">IOException</a></span></div>
<div class="block">Reseek the scanner at or after the specified KeyValue. This method is guaranteed to seek at or
after the required key only if the key comes after the current position of the scanner. Should
not be used to seek to a key which may come before the current position.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="KeyValueScanner.html#reseek(org.apache.hadoop.hbase.ExtendedCell)">reseek</a></code>&nbsp;in interface&nbsp;<code><a href="KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a></code></dd>
<dt>Parameters:</dt>
<dd><code>cell</code> - seek value (should be non-null)</dd>
<dt>Returns:</dt>
<dd>true if scanner has values left, false if end of scanner</dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link">IOException</a></code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="backwardSeek(org.apache.hadoop.hbase.ExtendedCell)">
<h3>backwardSeek</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/SegmentScanner.html#line-164">backwardSeek</a></span><wbr><span class="parameters">(<a href="../ExtendedCell.html" title="interface in org.apache.hadoop.hbase">ExtendedCell</a>&nbsp;key)</span>
throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link">IOException</a></span></div>
<div class="block">Seek the scanner at or before the row of specified Cell, it firstly tries to seek the scanner
at or after the specified Cell, return if peek KeyValue of scanner has the same row with
specified Cell, otherwise seek the scanner at the first Cell of the row which is the previous
row of specified KeyValue</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="KeyValueScanner.html#backwardSeek(org.apache.hadoop.hbase.ExtendedCell)">backwardSeek</a></code>&nbsp;in interface&nbsp;<code><a href="KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a></code></dd>
<dt>Parameters:</dt>
<dd><code>key</code> - seek Cell</dd>
<dt>Returns:</dt>
<dd>true if the scanner is at the valid KeyValue, false if such Cell does not exist</dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link">IOException</a></code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="seekToPreviousRow(org.apache.hadoop.hbase.ExtendedCell)">
<h3>seekToPreviousRow</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/SegmentScanner.html#line-182">seekToPreviousRow</a></span><wbr><span class="parameters">(<a href="../ExtendedCell.html" title="interface in org.apache.hadoop.hbase">ExtendedCell</a>&nbsp;cell)</span>
throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link">IOException</a></span></div>
<div class="block">Seek the scanner at the first Cell of the row which is the previous row of specified key</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="KeyValueScanner.html#seekToPreviousRow(org.apache.hadoop.hbase.ExtendedCell)">seekToPreviousRow</a></code>&nbsp;in interface&nbsp;<code><a href="KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a></code></dd>
<dt>Parameters:</dt>
<dd><code>cell</code> - seek value</dd>
<dt>Returns:</dt>
<dd>true if the scanner at the first valid Cell of previous row, false if not existing such
Cell</dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link">IOException</a></code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="seekToLastRow()">
<h3>seekToLastRow</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/SegmentScanner.html#line-219">seekToLastRow</a></span>()
throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link">IOException</a></span></div>
<div class="block">Seek the scanner at the first KeyValue of last row</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="KeyValueScanner.html#seekToLastRow()">seekToLastRow</a></code>&nbsp;in interface&nbsp;<code><a href="KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a></code></dd>
<dt>Returns:</dt>
<dd>true if scanner has values left, false if the underlying data is empty</dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link">IOException</a></code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="close()">
<h3>close</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/SegmentScanner.html#line-241">close</a></span>()</div>
<div class="block">Close the KeyValue scanner.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/AutoCloseable.html#close()" title="class or interface in java.lang" class="external-link">close</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/AutoCloseable.html" title="class or interface in java.lang" class="external-link">AutoCloseable</a></code></dd>
<dt>Specified by:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/Closeable.html#close()" title="class or interface in java.io" class="external-link">close</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/Closeable.html" title="class or interface in java.io" class="external-link">Closeable</a></code></dd>
<dt>Specified by:</dt>
<dd><code><a href="KeyValueScanner.html#close()">close</a></code>&nbsp;in interface&nbsp;<code><a href="KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a></code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="shouldUseScanner(org.apache.hadoop.hbase.client.Scan,org.apache.hadoop.hbase.regionserver.HStore,long)">
<h3>shouldUseScanner</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/SegmentScanner.html#line-255">shouldUseScanner</a></span><wbr><span class="parameters">(<a href="../client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;scan,
<a href="HStore.html" title="class in org.apache.hadoop.hbase.regionserver">HStore</a>&nbsp;store,
long&nbsp;oldestUnexpiredTS)</span></div>
<div class="block">This functionality should be resolved in the higher level which is MemStoreScanner, currently
returns true as default. Doesn't throw IllegalStateException in order not to change the
signature of the overridden method</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="KeyValueScanner.html#shouldUseScanner(org.apache.hadoop.hbase.client.Scan,org.apache.hadoop.hbase.regionserver.HStore,long)">shouldUseScanner</a></code>&nbsp;in interface&nbsp;<code><a href="KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a></code></dd>
<dt>Parameters:</dt>
<dd><code>scan</code> - the scan that we are selecting scanners for</dd>
<dd><code>store</code> - the store we are performing the scan on.</dd>
<dd><code>oldestUnexpiredTS</code> - the oldest timestamp we are interested in for this query, based on TTL</dd>
<dt>Returns:</dt>
<dd>true if the scanner should be included in the query</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="requestSeek(org.apache.hadoop.hbase.ExtendedCell,boolean,boolean)">
<h3>requestSeek</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/SegmentScanner.html#line-261">requestSeek</a></span><wbr><span class="parameters">(<a href="../ExtendedCell.html" title="interface in org.apache.hadoop.hbase">ExtendedCell</a>&nbsp;c,
boolean&nbsp;forward,
boolean&nbsp;useBloom)</span>
throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link">IOException</a></span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="KeyValueScanner.html#requestSeek(org.apache.hadoop.hbase.ExtendedCell,boolean,boolean)">KeyValueScanner</a></code></span></div>
<div class="block">Similar to <a href="KeyValueScanner.html#seek(org.apache.hadoop.hbase.ExtendedCell)"><code>KeyValueScanner.seek(org.apache.hadoop.hbase.ExtendedCell)</code></a> (or <a href="KeyValueScanner.html#reseek(org.apache.hadoop.hbase.ExtendedCell)"><code>KeyValueScanner.reseek(org.apache.hadoop.hbase.ExtendedCell)</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 class="notes">
<dt>Specified by:</dt>
<dd><code><a href="KeyValueScanner.html#requestSeek(org.apache.hadoop.hbase.ExtendedCell,boolean,boolean)">requestSeek</a></code>&nbsp;in interface&nbsp;<code><a href="KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</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>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link">IOException</a></code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="realSeekDone()">
<h3>realSeekDone</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/SegmentScanner.html#line-270">realSeekDone</a></span>()</div>
<div class="block">This scanner is working solely on the in-memory MemStore and doesn't work on store files,
MutableCellSetSegmentScanner always does the seek, therefore always returning true.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="KeyValueScanner.html#realSeekDone()">realSeekDone</a></code>&nbsp;in interface&nbsp;<code><a href="KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a></code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="enforceSeek()">
<h3>enforceSeek</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/SegmentScanner.html#line-280">enforceSeek</a></span>()
throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link">IOException</a></span></div>
<div class="block">This function should be never called on scanners that always do real seek operations (i.e. most
of the scanners and also this one). The easiest way to achieve this is to call
<a href="#realSeekDone()"><code>realSeekDone()</code></a> first.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="KeyValueScanner.html#enforceSeek()">enforceSeek</a></code>&nbsp;in interface&nbsp;<code><a href="KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a></code></dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link">IOException</a></code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="isFileScanner()">
<h3>isFileScanner</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/SegmentScanner.html#line-286">isFileScanner</a></span>()</div>
<div class="block">Returns true if this is a file scanner. Otherwise a memory scanner is assumed.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="KeyValueScanner.html#isFileScanner()">isFileScanner</a></code>&nbsp;in interface&nbsp;<code><a href="KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a></code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="recordBlockSize(java.util.function.IntConsumer)">
<h3>recordBlockSize</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/SegmentScanner.html#line-291">recordBlockSize</a></span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/function/IntConsumer.html" title="class or interface in java.util.function" class="external-link">IntConsumer</a>&nbsp;blockSizeConsumer)</span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="KeyValueScanner.html#recordBlockSize(java.util.function.IntConsumer)">KeyValueScanner</a></code></span></div>
<div class="block">Record the size of the current block in bytes, passing as an argument to the blockSizeConsumer.
Implementations should ensure that blockSizeConsumer is only called once per block.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="KeyValueScanner.html#recordBlockSize(java.util.function.IntConsumer)">recordBlockSize</a></code>&nbsp;in interface&nbsp;<code><a href="KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a></code></dd>
<dt>Parameters:</dt>
<dd><code>blockSizeConsumer</code> - to be called with block size in bytes, once per block.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getFilePath()">
<h3>getFilePath</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">org.apache.hadoop.fs.Path</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/SegmentScanner.html#line-296">getFilePath</a></span>()</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="KeyValueScanner.html#getFilePath()">getFilePath</a></code>&nbsp;in interface&nbsp;<code><a href="KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a></code></dd>
<dt>Returns:</dt>
<dd>the file path if this is a file scanner, otherwise null.</dd>
<dt>See Also:</dt>
<dd>
<ul class="see-list-long">
<li><a href="KeyValueScanner.html#isFileScanner()"><code>KeyValueScanner.isFileScanner()</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getNextIndexedKey()">
<h3>getNextIndexedKey</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="../ExtendedCell.html" title="interface in org.apache.hadoop.hbase">ExtendedCell</a></span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/SegmentScanner.html#line-305">getNextIndexedKey</a></span>()</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="KeyValueScanner.html#getNextIndexedKey()">getNextIndexedKey</a></code>&nbsp;in interface&nbsp;<code><a href="KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a></code></dd>
<dt>Returns:</dt>
<dd>the next key in the index (the key to seek to the next block) if known, or null
otherwise Not relevant for in-memory scanner</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="shipped()">
<h3>shipped</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/SegmentScanner.html#line-314">shipped</a></span>()
throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link">IOException</a></span></div>
<div class="block">Called after a batch of rows scanned (RPC) and set to be returned to client. Any in between
cleanup can be done here. Nothing to be done for MutableCellSetSegmentScanner.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="Shipper.html#shipped()">shipped</a></code>&nbsp;in interface&nbsp;<code><a href="Shipper.html" title="interface in org.apache.hadoop.hbase.regionserver">Shipper</a></code></dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link">IOException</a></code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="toString()">
<h3>toString</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/SegmentScanner.html#line-320">toString</a></span>()</div>
<dl class="notes">
<dt>Overrides:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#toString()" title="class or interface in java.lang" class="external-link">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getSegment()">
<h3>getSegment</h3>
<div class="member-signature"><span class="modifiers">private</span>&nbsp;<span class="return-type"><a href="Segment.html" title="class in org.apache.hadoop.hbase.regionserver">Segment</a></span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/SegmentScanner.html#line-330">getSegment</a></span>()</div>
<div class="block">Private Methods</div>
</section>
</li>
<li>
<section class="detail" id="updateCurrent()">
<h3>updateCurrent</h3>
<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/SegmentScanner.html#line-337">updateCurrent</a></span>()</div>
<div class="block">Private internal method for iterating over the segment, skipping the cells with irrelevant MVCC</div>
</section>
</li>
<li>
<section class="detail" id="getHighest(org.apache.hadoop.hbase.ExtendedCell,org.apache.hadoop.hbase.ExtendedCell)">
<h3>getHighest</h3>
<div class="member-signature"><span class="modifiers">private</span>&nbsp;<span class="return-type"><a href="../ExtendedCell.html" title="interface in org.apache.hadoop.hbase">ExtendedCell</a></span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/SegmentScanner.html#line-367">getHighest</a></span><wbr><span class="parameters">(<a href="../ExtendedCell.html" title="interface in org.apache.hadoop.hbase">ExtendedCell</a>&nbsp;first,
<a href="../ExtendedCell.html" title="interface in org.apache.hadoop.hbase">ExtendedCell</a>&nbsp;second)</span></div>
<div class="block">Private internal method that returns the higher of the two key values, or null if they are both
null</div>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
<!-- ========= END OF CLASS DATA ========= -->
</main>
<footer role="contentinfo">
<hr>
<p class="legal-copy"><small>Copyright &#169; 2007&#x2013;2020 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</footer>
</div>
</div>
</body>
</html>