blob: 40c47aac37719ed3c97cdd2248226a16959a7bbd [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>MemStoreLABImpl (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="MemStoreLABImpl (Apache HBase 3.0.0-alpha-2-SNAPSHOT API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":10,"i2":9,"i3":10,"i4":10,"i5":9,"i6":9,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/MemStoreLABImpl.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/MemStoreLAB.html" title="interface in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreMergerSegmentsIterator.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/MemStoreLABImpl.html" target="_top">Frames</a></li>
<li><a href="MemStoreLABImpl.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.hadoop.hbase.regionserver</div>
<h2 title="Class MemStoreLABImpl" class="title">Class MemStoreLABImpl</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li>org.apache.hadoop.hbase.regionserver.MemStoreLABImpl</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreLAB.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreLAB</a></dd>
</dl>
<hr>
<br>
<pre>@InterfaceAudience.Private
public class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html#line.67">MemStoreLABImpl</a>
extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreLAB.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreLAB</a></pre>
<div class="block">A memstore-local allocation buffer.
<p>
The MemStoreLAB is basically a bump-the-pointer allocator that allocates
big (2MB) byte[] chunks from and then doles it out to threads that request
slices into the array.
<p>
The purpose of this class is to combat heap fragmentation in the
regionserver. By ensuring that all Cells in a given memstore refer
only to large chunks of contiguous memory, we ensure that large blocks
get freed up when the memstore is flushed.
<p>
Without the MSLAB, the byte array allocated during insertion end up
interleaved throughout the heap, and the old generation gets progressively
more fragmented until a stop-the-world compacting collection occurs.
<p>
TODO: we should probably benchmark whether word-aligning the allocations
would provide a performance improvement - probably would speed up the
Bytes.toLong/Bytes.toInt calls in KeyValue, but some of those are cached
anyway.
The chunks created by this MemStoreLAB can get pooled at <a href="../../../../../org/apache/hadoop/hbase/regionserver/ChunkCreator.html" title="class in org.apache.hadoop.hbase.regionserver"><code>ChunkCreator</code></a>.
When the Chunk comes from pool, it can be either an on heap or an off heap backed chunk. The chunks,
which this MemStoreLAB creates on its own (when no chunk available from pool), those will be
always on heap backed.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Field and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/regionserver/ChunkCreator.html" title="class in org.apache.hadoop.hbase.regionserver">ChunkCreator</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html#chunkCreator">chunkCreator</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>(package private) <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html#chunks">chunks</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html#closed">closed</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicReference.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicReference</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/Chunk.html" title="class in org.apache.hadoop.hbase.regionserver">Chunk</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html#currChunk">currChunk</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html#dataChunkSize">dataChunkSize</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.IndexType.html" title="enum in org.apache.hadoop.hbase.regionserver">CompactingMemStore.IndexType</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html#idxType">idxType</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/ReentrantLock.html?is-external=true" title="class or interface in java.util.concurrent.locks">ReentrantLock</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html#lock">lock</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>(package private) static org.slf4j.Logger</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html#LOG">LOG</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html#maxAlloc">maxAlloc</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicInteger.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicInteger</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html#openScannerCount">openScannerCount</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicBoolean.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicBoolean</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html#reclaimed">reclaimed</a></span></code>&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="fields.inherited.from.class.org.apache.hadoop.hbase.regionserver.MemStoreLAB">
<!-- -->
</a>
<h3>Fields inherited from interface&nbsp;org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreLAB.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreLAB</a></h3>
<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreLAB.html#CHUNK_POOL_INITIALSIZE_KEY">CHUNK_POOL_INITIALSIZE_KEY</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreLAB.html#CHUNK_POOL_MAXSIZE_KEY">CHUNK_POOL_MAXSIZE_KEY</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreLAB.html#CHUNK_SIZE_DEFAULT">CHUNK_SIZE_DEFAULT</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreLAB.html#CHUNK_SIZE_KEY">CHUNK_SIZE_KEY</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreLAB.html#INDEX_CHUNK_SIZE_PERCENTAGE_DEFAULT">INDEX_CHUNK_SIZE_PERCENTAGE_DEFAULT</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreLAB.html#INDEX_CHUNK_SIZE_PERCENTAGE_KEY">INDEX_CHUNK_SIZE_PERCENTAGE_KEY</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreLAB.html#MAX_ALLOC_DEFAULT">MAX_ALLOC_DEFAULT</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreLAB.html#MAX_ALLOC_KEY">MAX_ALLOC_KEY</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreLAB.html#MSLAB_CLASS_NAME">MSLAB_CLASS_NAME</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreLAB.html#POOL_INITIAL_SIZE_DEFAULT">POOL_INITIAL_SIZE_DEFAULT</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreLAB.html#POOL_MAX_SIZE_DEFAULT">POOL_MAX_SIZE_DEFAULT</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreLAB.html#USEMSLAB_DEFAULT">USEMSLAB_DEFAULT</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreLAB.html#USEMSLAB_KEY">USEMSLAB_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/MemStoreLABImpl.html#MemStoreLABImpl--">MemStoreLABImpl</a></span>()</code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html#MemStoreLABImpl-org.apache.hadoop.conf.Configuration-">MemStoreLABImpl</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf)</code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html#close--">close</a></span>()</code>
<div class="block">Close this instance since it won't be used any more, try to put the chunks
back to pool</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>private <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/MemStoreLABImpl.html#copyBBECellInto-org.apache.hadoop.hbase.ByteBufferExtendedCell-int-">copyBBECellInto</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ByteBufferExtendedCell.html" title="class in org.apache.hadoop.hbase">ByteBufferExtendedCell</a>&nbsp;cell,
int&nbsp;maxAlloc)</code>
<div class="block">Mostly a duplicate of <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html#copyCellInto-org.apache.hadoop.hbase.Cell-int-"><code>copyCellInto(Cell, int)</code></a>} done for perf sake.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>private static <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/MemStoreLABImpl.html#copyBBECToChunkCell-org.apache.hadoop.hbase.ByteBufferExtendedCell-java.nio.ByteBuffer-int-int-">copyBBECToChunkCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ByteBufferExtendedCell.html" title="class in org.apache.hadoop.hbase">ByteBufferExtendedCell</a>&nbsp;cell,
<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;buf,
int&nbsp;offset,
int&nbsp;len)</code>
<div class="block">Clone the passed cell by copying its data into the passed buf and create a cell with a chunkid
out of it</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<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/MemStoreLABImpl.html#copyCellInto-org.apache.hadoop.hbase.Cell-">copyCellInto</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell)</code>
<div class="block">Allocates slice in this LAB and copy the passed Cell into this area.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>private <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/MemStoreLABImpl.html#copyCellInto-org.apache.hadoop.hbase.Cell-int-">copyCellInto</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell,
int&nbsp;maxAlloc)</code>&nbsp;</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>private static <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/MemStoreLABImpl.html#copyToChunkCell-org.apache.hadoop.hbase.Cell-java.nio.ByteBuffer-int-int-">copyToChunkCell</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell,
<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;buf,
int&nbsp;offset,
int&nbsp;len)</code>
<div class="block">Clone the passed cell by copying its data into the passed buf and create a cell with a chunkid
out of it</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>private static <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/MemStoreLABImpl.html#createChunkCell-java.nio.ByteBuffer-int-int-int-long-">createChunkCell</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;buf,
int&nbsp;offset,
int&nbsp;len,
int&nbsp;tagsLen,
long&nbsp;sequenceId)</code>&nbsp;</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html#decScannerCount--">decScannerCount</a></span>()</code>
<div class="block">Called when closing a scanner on the data of this MemStoreLAB</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/MemStoreLABImpl.html#forceCopyOfBigCellInto-org.apache.hadoop.hbase.Cell-">forceCopyOfBigCellInto</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell)</code>
<div class="block">When a cell's size is too big (bigger than maxAlloc),
copyCellInto does not allocate it on MSLAB.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>(package private) <a href="../../../../../org/apache/hadoop/hbase/regionserver/Chunk.html" title="class in org.apache.hadoop.hbase.regionserver">Chunk</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html#getCurrentChunk--">getCurrentChunk</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Chunk.html" title="class in org.apache.hadoop.hbase.regionserver">Chunk</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html#getNewExternalChunk-org.apache.hadoop.hbase.regionserver.ChunkCreator.ChunkType-">getNewExternalChunk</a></span>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/ChunkCreator.ChunkType.html" title="enum in org.apache.hadoop.hbase.regionserver">ChunkCreator.ChunkType</a>&nbsp;chunkType)</code>&nbsp;</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Chunk.html" title="class in org.apache.hadoop.hbase.regionserver">Chunk</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html#getNewExternalChunk-int-">getNewExternalChunk</a></span>(int&nbsp;size)</code>&nbsp;</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>(package private) <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html#getNumOfChunksReturnedToPool--">getNumOfChunksReturnedToPool</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>(package private) int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html#getOpenScannerCount--">getOpenScannerCount</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/regionserver/Chunk.html" title="class in org.apache.hadoop.hbase.regionserver">Chunk</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html#getOrMakeChunk--">getOrMakeChunk</a></span>()</code>
<div class="block">Get the current chunk, or, if there is no current chunk,
allocate a new one from the JVM.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>(package private) <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/BlockingQueue.html?is-external=true" title="class or interface in java.util.concurrent">BlockingQueue</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/Chunk.html" title="class in org.apache.hadoop.hbase.regionserver">Chunk</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html#getPooledChunks--">getPooledChunks</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html#incScannerCount--">incScannerCount</a></span>()</code>
<div class="block">Called when opening a scanner on the data of this MemStoreLAB</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html#isOffHeap--">isOffHeap</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html#isOnHeap--">isOnHeap</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html#recycleChunks--">recycleChunks</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html#tryRetireChunk-org.apache.hadoop.hbase.regionserver.Chunk-">tryRetireChunk</a></span>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/Chunk.html" title="class in org.apache.hadoop.hbase.regionserver">Chunk</a>&nbsp;c)</code>
<div class="block">Try to retire the current chunk if it is still
<code>c</code>.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.regionserver.MemStoreLAB">
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreLAB.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreLAB</a></h3>
<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreLAB.html#isEnabled-org.apache.hadoop.conf.Configuration-">isEnabled</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreLAB.html#newInstance-org.apache.hadoop.conf.Configuration-">newInstance</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>static final&nbsp;org.slf4j.Logger <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html#line.69">LOG</a></pre>
</li>
</ul>
<a name="currChunk">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>currChunk</h4>
<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicReference.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicReference</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/Chunk.html" title="class in org.apache.hadoop.hbase.regionserver">Chunk</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html#line.71">currChunk</a></pre>
</li>
</ul>
<a name="lock">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>lock</h4>
<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/ReentrantLock.html?is-external=true" title="class or interface in java.util.concurrent.locks">ReentrantLock</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html#line.73">lock</a></pre>
</li>
</ul>
<a name="chunks">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>chunks</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html#line.76">chunks</a></pre>
</li>
</ul>
<a name="dataChunkSize">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>dataChunkSize</h4>
<pre>private final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html#line.77">dataChunkSize</a></pre>
</li>
</ul>
<a name="maxAlloc">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>maxAlloc</h4>
<pre>private final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html#line.78">maxAlloc</a></pre>
</li>
</ul>
<a name="chunkCreator">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>chunkCreator</h4>
<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/ChunkCreator.html" title="class in org.apache.hadoop.hbase.regionserver">ChunkCreator</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html#line.79">chunkCreator</a></pre>
</li>
</ul>
<a name="idxType">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>idxType</h4>
<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.IndexType.html" title="enum in org.apache.hadoop.hbase.regionserver">CompactingMemStore.IndexType</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html#line.80">idxType</a></pre>
</li>
</ul>
<a name="closed">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>closed</h4>
<pre>private volatile&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html#line.84">closed</a></pre>
</li>
</ul>
<a name="reclaimed">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>reclaimed</h4>
<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicBoolean.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicBoolean</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html#line.87">reclaimed</a></pre>
</li>
</ul>
<a name="openScannerCount">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>openScannerCount</h4>
<pre>private final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicInteger.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicInteger</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html#line.89">openScannerCount</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="MemStoreLABImpl--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>MemStoreLABImpl</h4>
<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html#line.92">MemStoreLABImpl</a>()</pre>
</li>
</ul>
<a name="MemStoreLABImpl-org.apache.hadoop.conf.Configuration-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>MemStoreLABImpl</h4>
<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html#line.96">MemStoreLABImpl</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="copyCellInto-org.apache.hadoop.hbase.Cell-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>copyCellInto</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/MemStoreLABImpl.html#line.110">copyCellInto</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreLAB.html#copyCellInto-org.apache.hadoop.hbase.Cell-">MemStoreLAB</a></code></span></div>
<div class="block">Allocates slice in this LAB and copy the passed Cell into this area. Returns new Cell instance
over the copied the data. When this MemStoreLAB can not copy this Cell, it returns null.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreLAB.html#copyCellInto-org.apache.hadoop.hbase.Cell-">copyCellInto</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreLAB.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreLAB</a></code></dd>
</dl>
</li>
</ul>
<a name="forceCopyOfBigCellInto-org.apache.hadoop.hbase.Cell-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>forceCopyOfBigCellInto</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/MemStoreLABImpl.html#line.125">forceCopyOfBigCellInto</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell)</pre>
<div class="block">When a cell's size is too big (bigger than maxAlloc),
copyCellInto does not allocate it on MSLAB.
Since the process of flattening to CellChunkMap assumes that
all cells are allocated on MSLAB, during this process,
the big cells are copied into MSLAB using this method.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreLAB.html#forceCopyOfBigCellInto-org.apache.hadoop.hbase.Cell-">forceCopyOfBigCellInto</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreLAB.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreLAB</a></code></dd>
</dl>
</li>
</ul>
<a name="copyBBECellInto-org.apache.hadoop.hbase.ByteBufferExtendedCell-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>copyBBECellInto</h4>
<pre>private&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/MemStoreLABImpl.html#line.146">copyBBECellInto</a>(<a href="../../../../../org/apache/hadoop/hbase/ByteBufferExtendedCell.html" title="class in org.apache.hadoop.hbase">ByteBufferExtendedCell</a>&nbsp;cell,
int&nbsp;maxAlloc)</pre>
<div class="block">Mostly a duplicate of <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html#copyCellInto-org.apache.hadoop.hbase.Cell-int-"><code>copyCellInto(Cell, int)</code></a>} done for perf sake. It presumes
ByteBufferExtendedCell instead of Cell so we deal with a specific type rather than the
super generic Cell. Removes instanceof checks. Shrinkage is enough to make this inline where
before it was too big. Uses less CPU. See HBASE-20875 for evidence.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html#copyCellInto-org.apache.hadoop.hbase.Cell-int-"><code>copyCellInto(Cell, int)</code></a></dd>
</dl>
</li>
</ul>
<a name="copyCellInto-org.apache.hadoop.hbase.Cell-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>copyCellInto</h4>
<pre>private&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/MemStoreLABImpl.html#line.180">copyCellInto</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell,
int&nbsp;maxAlloc)</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html#copyBBECellInto-org.apache.hadoop.hbase.ByteBufferExtendedCell-int-"><code>copyBBECellInto(ByteBufferExtendedCell, int)</code></a></dd>
</dl>
</li>
</ul>
<a name="copyToChunkCell-org.apache.hadoop.hbase.Cell-java.nio.ByteBuffer-int-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>copyToChunkCell</h4>
<pre>private static&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/MemStoreLABImpl.html#line.217">copyToChunkCell</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell,
<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;buf,
int&nbsp;offset,
int&nbsp;len)</pre>
<div class="block">Clone the passed cell by copying its data into the passed buf and create a cell with a chunkid
out of it</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html#copyBBECToChunkCell-org.apache.hadoop.hbase.ByteBufferExtendedCell-java.nio.ByteBuffer-int-int-"><code>copyBBECToChunkCell(ByteBufferExtendedCell, ByteBuffer, int, int)</code></a></dd>
</dl>
</li>
</ul>
<a name="copyBBECToChunkCell-org.apache.hadoop.hbase.ByteBufferExtendedCell-java.nio.ByteBuffer-int-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>copyBBECToChunkCell</h4>
<pre>private static&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/MemStoreLABImpl.html#line.235">copyBBECToChunkCell</a>(<a href="../../../../../org/apache/hadoop/hbase/ByteBufferExtendedCell.html" title="class in org.apache.hadoop.hbase">ByteBufferExtendedCell</a>&nbsp;cell,
<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;buf,
int&nbsp;offset,
int&nbsp;len)</pre>
<div class="block">Clone the passed cell by copying its data into the passed buf and create a cell with a chunkid
out of it</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html#copyToChunkCell-org.apache.hadoop.hbase.Cell-java.nio.ByteBuffer-int-int-"><code>copyToChunkCell(Cell, ByteBuffer, int, int)</code></a></dd>
</dl>
</li>
</ul>
<a name="createChunkCell-java.nio.ByteBuffer-int-int-int-long-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createChunkCell</h4>
<pre>private static&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/MemStoreLABImpl.html#line.242">createChunkCell</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;buf,
int&nbsp;offset,
int&nbsp;len,
int&nbsp;tagsLen,
long&nbsp;sequenceId)</pre>
</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/MemStoreLABImpl.html#line.262">close</a>()</pre>
<div class="block">Close this instance since it won't be used any more, try to put the chunks
back to pool</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreLAB.html#close--">close</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreLAB.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreLAB</a></code></dd>
</dl>
</li>
</ul>
<a name="getOpenScannerCount--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getOpenScannerCount</h4>
<pre>int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html#line.272">getOpenScannerCount</a>()</pre>
</li>
</ul>
<a name="incScannerCount--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>incScannerCount</h4>
<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html#line.280">incScannerCount</a>()</pre>
<div class="block">Called when opening a scanner on the data of this MemStoreLAB</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreLAB.html#incScannerCount--">incScannerCount</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreLAB.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreLAB</a></code></dd>
</dl>
</li>
</ul>
<a name="decScannerCount--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>decScannerCount</h4>
<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html#line.288">decScannerCount</a>()</pre>
<div class="block">Called when closing a scanner on the data of this MemStoreLAB</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreLAB.html#decScannerCount--">decScannerCount</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreLAB.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreLAB</a></code></dd>
</dl>
</li>
</ul>
<a name="recycleChunks--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>recycleChunks</h4>
<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html#line.295">recycleChunks</a>()</pre>
</li>
</ul>
<a name="tryRetireChunk-org.apache.hadoop.hbase.regionserver.Chunk-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>tryRetireChunk</h4>
<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html#line.307">tryRetireChunk</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/Chunk.html" title="class in org.apache.hadoop.hbase.regionserver">Chunk</a>&nbsp;c)</pre>
<div class="block">Try to retire the current chunk if it is still
<code>c</code>. Postcondition is that curChunk.get()
!= c</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>c</code> - the chunk to retire</dd>
</dl>
</li>
</ul>
<a name="getOrMakeChunk--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getOrMakeChunk</h4>
<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/Chunk.html" title="class in org.apache.hadoop.hbase.regionserver">Chunk</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html#line.321">getOrMakeChunk</a>()</pre>
<div class="block">Get the current chunk, or, if there is no current chunk,
allocate a new one from the JVM.</div>
</li>
</ul>
<a name="getNewExternalChunk-org.apache.hadoop.hbase.regionserver.ChunkCreator.ChunkType-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getNewExternalChunk</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/Chunk.html" title="class in org.apache.hadoop.hbase.regionserver">Chunk</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html#line.357">getNewExternalChunk</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/ChunkCreator.ChunkType.html" title="enum in org.apache.hadoop.hbase.regionserver">ChunkCreator.ChunkType</a>&nbsp;chunkType)</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreLAB.html#getNewExternalChunk-org.apache.hadoop.hbase.regionserver.ChunkCreator.ChunkType-">getNewExternalChunk</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreLAB.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreLAB</a></code></dd>
</dl>
</li>
</ul>
<a name="getNewExternalChunk-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getNewExternalChunk</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/Chunk.html" title="class in org.apache.hadoop.hbase.regionserver">Chunk</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html#line.377">getNewExternalChunk</a>(int&nbsp;size)</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreLAB.html#getNewExternalChunk-int-">getNewExternalChunk</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreLAB.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreLAB</a></code></dd>
</dl>
</li>
</ul>
<a name="isOnHeap--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isOnHeap</h4>
<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html#line.389">isOnHeap</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreLAB.html#isOnHeap--">isOnHeap</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreLAB.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreLAB</a></code></dd>
</dl>
</li>
</ul>
<a name="isOffHeap--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isOffHeap</h4>
<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html#line.394">isOffHeap</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreLAB.html#isOffHeap--">isOffHeap</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreLAB.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreLAB</a></code></dd>
</dl>
</li>
</ul>
<a name="getCurrentChunk--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCurrentChunk</h4>
<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/Chunk.html" title="class in org.apache.hadoop.hbase.regionserver">Chunk</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html#line.398">getCurrentChunk</a>()</pre>
</li>
</ul>
<a name="getPooledChunks--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPooledChunks</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/BlockingQueue.html?is-external=true" title="class or interface in java.util.concurrent">BlockingQueue</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/Chunk.html" title="class in org.apache.hadoop.hbase.regionserver">Chunk</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html#line.402">getPooledChunks</a>()</pre>
</li>
</ul>
<a name="getNumOfChunksReturnedToPool--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>getNumOfChunksReturnedToPool</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MemStoreLABImpl.html#line.413">getNumOfChunksReturnedToPool</a>()</pre>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/MemStoreLABImpl.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/MemStoreLAB.html" title="interface in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreMergerSegmentsIterator.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/MemStoreLABImpl.html" target="_top">Frames</a></li>
<li><a href="MemStoreLABImpl.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2021 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</body>
</html>