| <!DOCTYPE HTML> |
| <html lang="en"> |
| <head> |
| <!-- Generated by javadoc (17) --> |
| <title>LruBlockCache (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.io.hfile, class: LruBlockCache"> |
| <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/LruBlockCache.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: </li> |
| <li><a href="#nested-class-summary">Nested</a> | </li> |
| <li><a href="#field-summary">Field</a> | </li> |
| <li><a href="#constructor-summary">Constr</a> | </li> |
| <li><a href="#method-summary">Method</a></li> |
| </ul> |
| <ul class="sub-nav-list"> |
| <li>Detail: </li> |
| <li><a href="#field-detail">Field</a> | </li> |
| <li><a href="#constructor-detail">Constr</a> | </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> <a href="package-summary.html">org.apache.hadoop.hbase.io.hfile</a></div> |
| <h1 title="Class LruBlockCache" class="title">Class LruBlockCache</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.io.hfile.LruBlockCache</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/lang/Iterable.html" title="class or interface in java.lang" class="external-link">Iterable</a><<a href="CachedBlock.html" title="interface in org.apache.hadoop.hbase.io.hfile">CachedBlock</a>></code>, <code><a href="../HeapSize.html" title="interface in org.apache.hadoop.hbase.io">HeapSize</a></code>, <code><a href="BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a></code>, <code><a href="FirstLevelBlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">FirstLevelBlockCache</a></code>, <code><a href="ResizableBlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">ResizableBlockCache</a></code></dd> |
| </dl> |
| <dl class="notes"> |
| <dt>Direct Known Subclasses:</dt> |
| <dd><code><a href="IndexOnlyLruBlockCache.html" title="class in org.apache.hadoop.hbase.io.hfile">IndexOnlyLruBlockCache</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/io/hfile/LruBlockCache.html#line-88">LruBlockCache</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="FirstLevelBlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">FirstLevelBlockCache</a></span></div> |
| <div class="block">A block cache implementation that is memory-aware using <a href="../HeapSize.html" title="interface in org.apache.hadoop.hbase.io"><code>HeapSize</code></a>, memory-bound using an |
| LRU eviction algorithm, and concurrent: backed by a <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/concurrent/ConcurrentHashMap.html" title="class or interface in java.util.concurrent" class="external-link"><code>ConcurrentHashMap</code></a> and with a |
| non-blocking eviction thread giving constant-time <a href="#cacheBlock(org.apache.hadoop.hbase.io.hfile.BlockCacheKey,org.apache.hadoop.hbase.io.hfile.Cacheable,boolean)"><code>cacheBlock(org.apache.hadoop.hbase.io.hfile.BlockCacheKey, org.apache.hadoop.hbase.io.hfile.Cacheable, boolean)</code></a> and <a href="#getBlock(org.apache.hadoop.hbase.io.hfile.BlockCacheKey,boolean,boolean,boolean)"><code>getBlock(org.apache.hadoop.hbase.io.hfile.BlockCacheKey, boolean, boolean, boolean)</code></a> |
| operations. |
| </p> |
| Contains three levels of block priority to allow for scan-resistance and in-memory families |
| <a href="../../client/ColumnFamilyDescriptorBuilder.html#setInMemory(boolean)"><code>ColumnFamilyDescriptorBuilder.setInMemory(boolean)</code></a> (An |
| in-memory column family is a column family that should be served from memory if possible): |
| single-access, multiple-accesses, and in-memory priority. A block is added with an in-memory |
| priority flag if <a href="../../client/ColumnFamilyDescriptor.html#isInMemory()"><code>ColumnFamilyDescriptor.isInMemory()</code></a>, |
| otherwise a block becomes a single access priority the first time it is read into this block |
| cache. If a block is accessed again while in cache, it is marked as a multiple access priority |
| block. This delineation of blocks is used to prevent scans from thrashing the cache adding a |
| least-frequently-used element to the eviction algorithm. |
| <p/> |
| Each priority is given its own chunk of the total cache to ensure fairness during eviction. Each |
| priority will retain close to its maximum size, however, if any priority is not using its entire |
| chunk the others are able to grow beyond their chunk size. |
| <p/> |
| Instantiated at a minimum with the total size and average block size. All sizes are in bytes. The |
| block size is not especially important as this cache is fully dynamic in its sizing of blocks. It |
| is only used for pre-allocating data structures and in initial heap estimation of the map. |
| <p/> |
| The detailed constructor defines the sizes for the three priorities (they should total to the |
| <code>maximum size</code> defined). It also sets the levels that trigger and control the eviction |
| thread. |
| <p/> |
| The <code>acceptable size</code> is the cache size level which triggers the eviction process to |
| start. It evicts enough blocks to get the size below the minimum size specified. |
| <p/> |
| Eviction happens in a separate thread and involves a single full-scan of the map. It determines |
| how many bytes must be freed to reach the minimum size, and then while scanning determines the |
| fewest least-recently-used blocks necessary from each of the three priorities (would be 3 times |
| bytes to free). It then uses the priority chunk sizes to evict fairly according to the relative |
| sizes and usage.</div> |
| </section> |
| <section class="summary"> |
| <ul class="summary-list"> |
| <!-- ======== NESTED CLASS SUMMARY ======== --> |
| <li> |
| <section class="nested-class-summary" id="nested-class-summary"> |
| <h2>Nested Class Summary</h2> |
| <div class="caption"><span>Nested Classes</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">Class</div> |
| <div class="table-header col-last">Description</div> |
| <div class="col-first even-row-color"><code>private class </code></div> |
| <div class="col-second even-row-color"><code><a href="LruBlockCache.BlockBucket.html" class="type-name-link" title="class in org.apache.hadoop.hbase.io.hfile">LruBlockCache.BlockBucket</a></code></div> |
| <div class="col-last even-row-color"> |
| <div class="block">Used to group blocks into priority buckets.</div> |
| </div> |
| <div class="col-first odd-row-color"><code>(package private) static class </code></div> |
| <div class="col-second odd-row-color"><code><a href="LruBlockCache.EvictionThread.html" class="type-name-link" title="class in org.apache.hadoop.hbase.io.hfile">LruBlockCache.EvictionThread</a></code></div> |
| <div class="col-last odd-row-color"> </div> |
| <div class="col-first even-row-color"><code>(package private) static class </code></div> |
| <div class="col-second even-row-color"><code><a href="LruBlockCache.StatisticsThread.html" class="type-name-link" title="class in org.apache.hadoop.hbase.io.hfile">LruBlockCache.StatisticsThread</a></code></div> |
| <div class="col-last even-row-color"> </div> |
| </div> |
| </section> |
| </li> |
| <!-- =========== 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>private float</code></div> |
| <div class="col-second even-row-color"><code><a href="#acceptableFactor" class="member-name-link">acceptableFactor</a></code></div> |
| <div class="col-last even-row-color"> |
| <div class="block">Acceptable size of cache (no evictions if size < acceptable)</div> |
| </div> |
| <div class="col-first odd-row-color"><code>private long</code></div> |
| <div class="col-second odd-row-color"><code><a href="#blockSize" class="member-name-link">blockSize</a></code></div> |
| <div class="col-last odd-row-color"> |
| <div class="block">Approximate block size</div> |
| </div> |
| <div class="col-first even-row-color"><code>private final <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/concurrent/atomic/LongAdder.html" title="class or interface in java.util.concurrent.atomic" class="external-link">LongAdder</a></code></div> |
| <div class="col-second even-row-color"><code><a href="#bloomBlockElements" class="member-name-link">bloomBlockElements</a></code></div> |
| <div class="col-last even-row-color"> |
| <div class="block">Current number of cached bloom block elements</div> |
| </div> |
| <div class="col-first odd-row-color"><code>private final <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/concurrent/atomic/LongAdder.html" title="class or interface in java.util.concurrent.atomic" class="external-link">LongAdder</a></code></div> |
| <div class="col-second odd-row-color"><code><a href="#bloomBlockSize" class="member-name-link">bloomBlockSize</a></code></div> |
| <div class="col-last odd-row-color"> |
| <div class="block">Current size of bloom blocks</div> |
| </div> |
| <div class="col-first even-row-color"><code>static final long</code></div> |
| <div class="col-second even-row-color"><code><a href="#CACHE_FIXED_OVERHEAD" class="member-name-link">CACHE_FIXED_OVERHEAD</a></code></div> |
| <div class="col-last even-row-color"> </div> |
| <div class="col-first odd-row-color"><code>private final <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/concurrent/atomic/AtomicLong.html" title="class or interface in java.util.concurrent.atomic" class="external-link">AtomicLong</a></code></div> |
| <div class="col-second odd-row-color"><code><a href="#count" class="member-name-link">count</a></code></div> |
| <div class="col-last odd-row-color"> |
| <div class="block">Cache access count (sequential ID)</div> |
| </div> |
| <div class="col-first even-row-color"><code>private final <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/concurrent/atomic/LongAdder.html" title="class or interface in java.util.concurrent.atomic" class="external-link">LongAdder</a></code></div> |
| <div class="col-second even-row-color"><code><a href="#dataBlockElements" class="member-name-link">dataBlockElements</a></code></div> |
| <div class="col-last even-row-color"> |
| <div class="block">Current number of cached data block elements</div> |
| </div> |
| <div class="col-first odd-row-color"><code>private final <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/concurrent/atomic/LongAdder.html" title="class or interface in java.util.concurrent.atomic" class="external-link">LongAdder</a></code></div> |
| <div class="col-second odd-row-color"><code><a href="#dataBlockSize" class="member-name-link">dataBlockSize</a></code></div> |
| <div class="col-last odd-row-color"> |
| <div class="block">Current size of data blocks</div> |
| </div> |
| <div class="col-first even-row-color"><code>(package private) static final float</code></div> |
| <div class="col-second even-row-color"><code><a href="#DEFAULT_ACCEPTABLE_FACTOR" class="member-name-link">DEFAULT_ACCEPTABLE_FACTOR</a></code></div> |
| <div class="col-last even-row-color"> </div> |
| <div class="col-first odd-row-color"><code>(package private) static final int</code></div> |
| <div class="col-second odd-row-color"><code><a href="#DEFAULT_CONCURRENCY_LEVEL" class="member-name-link">DEFAULT_CONCURRENCY_LEVEL</a></code></div> |
| <div class="col-last odd-row-color"> </div> |
| <div class="col-first even-row-color"><code>private static final float</code></div> |
| <div class="col-second even-row-color"><code><a href="#DEFAULT_HARD_CAPACITY_LIMIT_FACTOR" class="member-name-link">DEFAULT_HARD_CAPACITY_LIMIT_FACTOR</a></code></div> |
| <div class="col-last even-row-color"> </div> |
| <div class="col-first odd-row-color"><code>private static final boolean</code></div> |
| <div class="col-second odd-row-color"><code><a href="#DEFAULT_IN_MEMORY_FORCE_MODE" class="member-name-link">DEFAULT_IN_MEMORY_FORCE_MODE</a></code></div> |
| <div class="col-last odd-row-color"> </div> |
| <div class="col-first even-row-color"><code>(package private) static final float</code></div> |
| <div class="col-second even-row-color"><code><a href="#DEFAULT_LOAD_FACTOR" class="member-name-link">DEFAULT_LOAD_FACTOR</a></code></div> |
| <div class="col-last even-row-color"> </div> |
| <div class="col-first odd-row-color"><code>private static final long</code></div> |
| <div class="col-second odd-row-color"><code><a href="#DEFAULT_MAX_BLOCK_SIZE" class="member-name-link">DEFAULT_MAX_BLOCK_SIZE</a></code></div> |
| <div class="col-last odd-row-color"> </div> |
| <div class="col-first even-row-color"><code>private static final float</code></div> |
| <div class="col-second even-row-color"><code><a href="#DEFAULT_MEMORY_FACTOR" class="member-name-link">DEFAULT_MEMORY_FACTOR</a></code></div> |
| <div class="col-last even-row-color"> </div> |
| <div class="col-first odd-row-color"><code>private static final float</code></div> |
| <div class="col-second odd-row-color"><code><a href="#DEFAULT_MIN_FACTOR" class="member-name-link">DEFAULT_MIN_FACTOR</a></code></div> |
| <div class="col-last odd-row-color"> </div> |
| <div class="col-first even-row-color"><code>private static final float</code></div> |
| <div class="col-second even-row-color"><code><a href="#DEFAULT_MULTI_FACTOR" class="member-name-link">DEFAULT_MULTI_FACTOR</a></code></div> |
| <div class="col-last even-row-color"> </div> |
| <div class="col-first odd-row-color"><code>private static final float</code></div> |
| <div class="col-second odd-row-color"><code><a href="#DEFAULT_SINGLE_FACTOR" class="member-name-link">DEFAULT_SINGLE_FACTOR</a></code></div> |
| <div class="col-last odd-row-color"> </div> |
| <div class="col-first even-row-color"><code>private final <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/concurrent/atomic/AtomicLong.html" title="class or interface in java.util.concurrent.atomic" class="external-link">AtomicLong</a></code></div> |
| <div class="col-second even-row-color"><code><a href="#elements" class="member-name-link">elements</a></code></div> |
| <div class="col-last even-row-color"> |
| <div class="block">Current number of cached elements</div> |
| </div> |
| <div class="col-first odd-row-color"><code>private boolean</code></div> |
| <div class="col-second odd-row-color"><code><a href="#evictionInProgress" class="member-name-link">evictionInProgress</a></code></div> |
| <div class="col-last odd-row-color"> |
| <div class="block">Volatile boolean to track if we are in an eviction process or not</div> |
| </div> |
| <div class="col-first even-row-color"><code>private final <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/concurrent/locks/ReentrantLock.html" title="class or interface in java.util.concurrent.locks" class="external-link">ReentrantLock</a></code></div> |
| <div class="col-second even-row-color"><code><a href="#evictionLock" class="member-name-link">evictionLock</a></code></div> |
| <div class="col-last even-row-color"> |
| <div class="block">Eviction lock (locked when eviction in process)</div> |
| </div> |
| <div class="col-first odd-row-color"><code>private final <a href="LruBlockCache.EvictionThread.html" title="class in org.apache.hadoop.hbase.io.hfile">LruBlockCache.EvictionThread</a></code></div> |
| <div class="col-second odd-row-color"><code><a href="#evictionThread" class="member-name-link">evictionThread</a></code></div> |
| <div class="col-last odd-row-color"> |
| <div class="block">Eviction thread</div> |
| </div> |
| <div class="col-first even-row-color"><code>private boolean</code></div> |
| <div class="col-second even-row-color"><code><a href="#forceInMemory" class="member-name-link">forceInMemory</a></code></div> |
| <div class="col-last even-row-color"> |
| <div class="block">Whether in-memory hfile's data block has higher priority when evicting</div> |
| </div> |
| <div class="col-first odd-row-color"><code>private float</code></div> |
| <div class="col-second odd-row-color"><code><a href="#hardCapacityLimitFactor" class="member-name-link">hardCapacityLimitFactor</a></code></div> |
| <div class="col-last odd-row-color"> |
| <div class="block">hard capacity limit</div> |
| </div> |
| <div class="col-first even-row-color"><code>private final <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/concurrent/atomic/LongAdder.html" title="class or interface in java.util.concurrent.atomic" class="external-link">LongAdder</a></code></div> |
| <div class="col-second even-row-color"><code><a href="#indexBlockElements" class="member-name-link">indexBlockElements</a></code></div> |
| <div class="col-last even-row-color"> |
| <div class="block">Current number of cached index block elements</div> |
| </div> |
| <div class="col-first odd-row-color"><code>private final <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/concurrent/atomic/LongAdder.html" title="class or interface in java.util.concurrent.atomic" class="external-link">LongAdder</a></code></div> |
| <div class="col-second odd-row-color"><code><a href="#indexBlockSize" class="member-name-link">indexBlockSize</a></code></div> |
| <div class="col-last odd-row-color"> |
| <div class="block">Current size of index blocks</div> |
| </div> |
| <div class="col-first even-row-color"><code>private static final org.slf4j.Logger</code></div> |
| <div class="col-second even-row-color"><code><a href="#LOG" class="member-name-link">LOG</a></code></div> |
| <div class="col-last even-row-color"> </div> |
| <div class="col-first odd-row-color"><code>private static final <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 odd-row-color"><code><a href="#LRU_ACCEPTABLE_FACTOR_CONFIG_NAME" class="member-name-link">LRU_ACCEPTABLE_FACTOR_CONFIG_NAME</a></code></div> |
| <div class="col-last odd-row-color"> |
| <div class="block">Acceptable size of cache (no evictions if size < acceptable)</div> |
| </div> |
| <div class="col-first even-row-color"><code>(package private) static final <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"><code><a href="#LRU_HARD_CAPACITY_LIMIT_FACTOR_CONFIG_NAME" class="member-name-link">LRU_HARD_CAPACITY_LIMIT_FACTOR_CONFIG_NAME</a></code></div> |
| <div class="col-last even-row-color"> |
| <div class="block">Hard capacity limit of cache, will reject any put if size > this * acceptable</div> |
| </div> |
| <div class="col-first odd-row-color"><code>private static final <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 odd-row-color"><code><a href="#LRU_IN_MEMORY_FORCE_MODE_CONFIG_NAME" class="member-name-link">LRU_IN_MEMORY_FORCE_MODE_CONFIG_NAME</a></code></div> |
| <div class="col-last odd-row-color"> |
| <div class="block">Configuration key to force data-block always (except in-memory are too much) cached in memory |
| for in-memory hfile, unlike inMemory, which is a column-family configuration, inMemoryForceMode |
| is a cluster-wide configuration</div> |
| </div> |
| <div class="col-first even-row-color"><code>private static final <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"><code><a href="#LRU_MAX_BLOCK_SIZE" class="member-name-link">LRU_MAX_BLOCK_SIZE</a></code></div> |
| <div class="col-last even-row-color"> </div> |
| <div class="col-first odd-row-color"><code>private static final <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 odd-row-color"><code><a href="#LRU_MEMORY_PERCENTAGE_CONFIG_NAME" class="member-name-link">LRU_MEMORY_PERCENTAGE_CONFIG_NAME</a></code></div> |
| <div class="col-last odd-row-color"> </div> |
| <div class="col-first even-row-color"><code>private static final <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"><code><a href="#LRU_MIN_FACTOR_CONFIG_NAME" class="member-name-link">LRU_MIN_FACTOR_CONFIG_NAME</a></code></div> |
| <div class="col-last even-row-color"> |
| <div class="block">Percentage of total size that eviction will evict until; e.g.</div> |
| </div> |
| <div class="col-first odd-row-color"><code>private static final <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 odd-row-color"><code><a href="#LRU_MULTI_PERCENTAGE_CONFIG_NAME" class="member-name-link">LRU_MULTI_PERCENTAGE_CONFIG_NAME</a></code></div> |
| <div class="col-last odd-row-color"> </div> |
| <div class="col-first even-row-color"><code>private static final <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"><code><a href="#LRU_SINGLE_PERCENTAGE_CONFIG_NAME" class="member-name-link">LRU_SINGLE_PERCENTAGE_CONFIG_NAME</a></code></div> |
| <div class="col-last even-row-color"> </div> |
| <div class="col-first odd-row-color"><code>private final <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/concurrent/ConcurrentHashMap.html" title="class or interface in java.util.concurrent" class="external-link">ConcurrentHashMap</a><<a href="BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a>,<wbr><a href="LruCachedBlock.html" title="class in org.apache.hadoop.hbase.io.hfile">LruCachedBlock</a>></code></div> |
| <div class="col-second odd-row-color"><code><a href="#map" class="member-name-link">map</a></code></div> |
| <div class="col-last odd-row-color"> |
| <div class="block">Defined the cache map as <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/concurrent/ConcurrentHashMap.html" title="class or interface in java.util.concurrent" class="external-link"><code>ConcurrentHashMap</code></a> here, because in |
| <a href="#getBlock(org.apache.hadoop.hbase.io.hfile.BlockCacheKey,boolean,boolean,boolean)"><code>getBlock(org.apache.hadoop.hbase.io.hfile.BlockCacheKey, boolean, boolean, boolean)</code></a>, we need to guarantee the atomicity of map#k (key, func).</div> |
| </div> |
| <div class="col-first even-row-color"><code>private final long</code></div> |
| <div class="col-second even-row-color"><code><a href="#maxBlockSize" class="member-name-link">maxBlockSize</a></code></div> |
| <div class="col-last even-row-color"> </div> |
| <div class="col-first odd-row-color"><code>private long</code></div> |
| <div class="col-second odd-row-color"><code><a href="#maxSize" class="member-name-link">maxSize</a></code></div> |
| <div class="col-last odd-row-color"> |
| <div class="block">Maximum allowable size of cache (block put if size > max, evict)</div> |
| </div> |
| <div class="col-first even-row-color"><code>private float</code></div> |
| <div class="col-second even-row-color"><code><a href="#memoryFactor" class="member-name-link">memoryFactor</a></code></div> |
| <div class="col-last even-row-color"> |
| <div class="block">In-memory bucket size</div> |
| </div> |
| <div class="col-first odd-row-color"><code>private float</code></div> |
| <div class="col-second odd-row-color"><code><a href="#minFactor" class="member-name-link">minFactor</a></code></div> |
| <div class="col-last odd-row-color"> |
| <div class="block">Minimum threshold of cache (when evicting, evict until size < min)</div> |
| </div> |
| <div class="col-first even-row-color"><code>private float</code></div> |
| <div class="col-second even-row-color"><code><a href="#multiFactor" class="member-name-link">multiFactor</a></code></div> |
| <div class="col-last even-row-color"> |
| <div class="block">Multiple access bucket size</div> |
| </div> |
| <div class="col-first odd-row-color"><code>private long</code></div> |
| <div class="col-second odd-row-color"><code><a href="#overhead" class="member-name-link">overhead</a></code></div> |
| <div class="col-last odd-row-color"> |
| <div class="block">Overhead of the structure itself</div> |
| </div> |
| <div class="col-first even-row-color"><code>private final <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/concurrent/ScheduledExecutorService.html" title="class or interface in java.util.concurrent" class="external-link">ScheduledExecutorService</a></code></div> |
| <div class="col-second even-row-color"><code><a href="#scheduleThreadPool" class="member-name-link">scheduleThreadPool</a></code></div> |
| <div class="col-last even-row-color"> |
| <div class="block">Statistics thread schedule pool (for heavy debugging, could remove)</div> |
| </div> |
| <div class="col-first odd-row-color"><code>private float</code></div> |
| <div class="col-second odd-row-color"><code><a href="#singleFactor" class="member-name-link">singleFactor</a></code></div> |
| <div class="col-last odd-row-color"> |
| <div class="block">Single access bucket size</div> |
| </div> |
| <div class="col-first even-row-color"><code>private final <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/concurrent/atomic/AtomicLong.html" title="class or interface in java.util.concurrent.atomic" class="external-link">AtomicLong</a></code></div> |
| <div class="col-second even-row-color"><code><a href="#size" class="member-name-link">size</a></code></div> |
| <div class="col-last even-row-color"> |
| <div class="block">Current size of cache</div> |
| </div> |
| <div class="col-first odd-row-color"><code>private static final int</code></div> |
| <div class="col-second odd-row-color"><code><a href="#STAT_THREAD_PERIOD" class="member-name-link">STAT_THREAD_PERIOD</a></code></div> |
| <div class="col-last odd-row-color"> </div> |
| <div class="col-first even-row-color"><code>private final <a href="CacheStats.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheStats</a></code></div> |
| <div class="col-second even-row-color"><code><a href="#stats" class="member-name-link">stats</a></code></div> |
| <div class="col-last even-row-color"> |
| <div class="block">Cache statistics</div> |
| </div> |
| <div class="col-first odd-row-color"><code>private <a href="BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a></code></div> |
| <div class="col-second odd-row-color"><code><a href="#victimHandler" class="member-name-link">victimHandler</a></code></div> |
| <div class="col-last odd-row-color"> |
| <div class="block">Where to send victims (blocks evicted/missing from the cache).</div> |
| </div> |
| </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 two-column-summary"> |
| <div class="table-header col-first">Constructor</div> |
| <div class="table-header col-last">Description</div> |
| <div class="col-constructor-name even-row-color"><code><a href="#%3Cinit%3E(long,long)" class="member-name-link">LruBlockCache</a><wbr>(long maxSize, |
| long blockSize)</code></div> |
| <div class="col-last even-row-color"> |
| <div class="block">Default constructor.</div> |
| </div> |
| <div class="col-constructor-name odd-row-color"><code><a href="#%3Cinit%3E(long,long,boolean)" class="member-name-link">LruBlockCache</a><wbr>(long maxSize, |
| long blockSize, |
| boolean evictionThread)</code></div> |
| <div class="col-last odd-row-color"> |
| <div class="block">Constructor used for testing.</div> |
| </div> |
| <div class="col-constructor-name even-row-color"><code><a href="#%3Cinit%3E(long,long,boolean,int,float,int,float,float,float,float,float,float,boolean,long)" class="member-name-link">LruBlockCache</a><wbr>(long maxSize, |
| long blockSize, |
| boolean evictionThread, |
| int mapInitialSize, |
| float mapLoadFactor, |
| int mapConcurrencyLevel, |
| float minFactor, |
| float acceptableFactor, |
| float singleFactor, |
| float multiFactor, |
| float memoryFactor, |
| float hardLimitFactor, |
| boolean forceInMemory, |
| long maxBlockSize)</code></div> |
| <div class="col-last even-row-color"> |
| <div class="block">Configurable constructor.</div> |
| </div> |
| <div class="col-constructor-name odd-row-color"><code><a href="#%3Cinit%3E(long,long,boolean,org.apache.hadoop.conf.Configuration)" class="member-name-link">LruBlockCache</a><wbr>(long maxSize, |
| long blockSize, |
| boolean evictionThread, |
| org.apache.hadoop.conf.Configuration conf)</code></div> |
| <div class="col-last odd-row-color"> </div> |
| <div class="col-constructor-name even-row-color"><code><a href="#%3Cinit%3E(long,long,org.apache.hadoop.conf.Configuration)" class="member-name-link">LruBlockCache</a><wbr>(long maxSize, |
| long blockSize, |
| org.apache.hadoop.conf.Configuration conf)</code></div> |
| <div class="col-last even-row-color"> </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-tab1" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab1', 3)" class="table-tab">Static 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>(package private) long</code></div> |
| <div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#acceptableSize()" class="member-name-link">acceptableSize</a>()</code></div> |
| <div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> </div> |
| <div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>private <a href="Cacheable.html" title="interface in org.apache.hadoop.hbase.io.hfile">Cacheable</a></code></div> |
| <div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#asReferencedHeapBlock(org.apache.hadoop.hbase.io.hfile.Cacheable)" class="member-name-link">asReferencedHeapBlock</a><wbr>(<a href="Cacheable.html" title="interface in org.apache.hadoop.hbase.io.hfile">Cacheable</a> buf)</code></div> |
| <div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">The block cached in LRUBlockCache will always be an heap block: on the one side, the heap |
| access will be more faster then off-heap, the small index block or meta block cached in |
| CombinedBlockCache will benefit a lot.</div> |
| </div> |
| <div class="col-first even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>private static void</code></div> |
| <div class="col-second even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#assertCounterSanity(long,long)" class="member-name-link">assertCounterSanity</a><wbr>(long mapSize, |
| long counterVal)</code></div> |
| <div class="col-last even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"> |
| <div class="block">Sanity-checking for parity between actual block cache content and metrics.</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="#cacheBlock(org.apache.hadoop.hbase.io.hfile.BlockCacheKey,org.apache.hadoop.hbase.io.hfile.Cacheable)" class="member-name-link">cacheBlock</a><wbr>(<a href="BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a> cacheKey, |
| <a href="Cacheable.html" title="interface in org.apache.hadoop.hbase.io.hfile">Cacheable</a> buf)</code></div> |
| <div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Cache the block with the specified name and buffer.</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="#cacheBlock(org.apache.hadoop.hbase.io.hfile.BlockCacheKey,org.apache.hadoop.hbase.io.hfile.Cacheable,boolean)" class="member-name-link">cacheBlock</a><wbr>(<a href="BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a> cacheKey, |
| <a href="Cacheable.html" title="interface in org.apache.hadoop.hbase.io.hfile">Cacheable</a> buf, |
| boolean inMemory)</code></div> |
| <div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Cache the block with the specified name and buffer.</div> |
| </div> |
| <div class="col-first odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>private static long</code></div> |
| <div class="col-second odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#calculateOverhead(long,long,int)" class="member-name-link">calculateOverhead</a><wbr>(long maxSize, |
| long blockSize, |
| int concurrency)</code></div> |
| <div class="col-last odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"> </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="#clearCache()" class="member-name-link">clearCache</a>()</code></div> |
| <div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Clears the cache.</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="#containsBlock(org.apache.hadoop.hbase.io.hfile.BlockCacheKey)" class="member-name-link">containsBlock</a><wbr>(<a href="BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a> cacheKey)</code></div> |
| <div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Whether the cache contains block with specified cacheKey</div> |
| </div> |
| <div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>(package private) void</code></div> |
| <div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#evict()" class="member-name-link">evict</a>()</code></div> |
| <div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Eviction method.</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="#evictBlock(org.apache.hadoop.hbase.io.hfile.BlockCacheKey)" class="member-name-link">evictBlock</a><wbr>(<a href="BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a> cacheKey)</code></div> |
| <div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Evict block from cache.</div> |
| </div> |
| <div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>protected long</code></div> |
| <div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#evictBlock(org.apache.hadoop.hbase.io.hfile.LruCachedBlock,boolean)" class="member-name-link">evictBlock</a><wbr>(<a href="LruCachedBlock.html" title="class in org.apache.hadoop.hbase.io.hfile">LruCachedBlock</a> block, |
| boolean evictedByEvictionProcess)</code></div> |
| <div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Evict the block, and it will be cached by the victim handler if exists && block may be |
| read again later</div> |
| </div> |
| <div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>int</code></div> |
| <div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#evictBlocksByHfileName(java.lang.String)" class="member-name-link">evictBlocksByHfileName</a><wbr>(<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> hfileName)</code></div> |
| <div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Evicts all blocks for a specific HFile.</div> |
| </div> |
| <div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="Cacheable.html" title="interface in org.apache.hadoop.hbase.io.hfile">Cacheable</a></code></div> |
| <div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getBlock(org.apache.hadoop.hbase.io.hfile.BlockCacheKey,boolean,boolean,boolean)" class="member-name-link">getBlock</a><wbr>(<a href="BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a> cacheKey, |
| boolean caching, |
| boolean repeat, |
| boolean updateCacheMetrics)</code></div> |
| <div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Get the buffer of the block with the specified name.</div> |
| </div> |
| <div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>[]</code></div> |
| <div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getBlockCaches()" class="member-name-link">getBlockCaches</a>()</code></div> |
| <div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Returns The list of sub blockcaches that make up this one; returns null if no sub caches.</div> |
| </div> |
| <div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>long</code></div> |
| <div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getBlockCount()" class="member-name-link">getBlockCount</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 the number of blocks currently cached in the block cache.</div> |
| </div> |
| <div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>long</code></div> |
| <div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getBloomBlockCount()" class="member-name-link">getBloomBlockCount</a>()</code></div> |
| <div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> </div> |
| <div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>(package private) <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/SortedSet.html" title="class or interface in java.util" class="external-link">SortedSet</a><<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="#getCachedFileNamesForTest()" class="member-name-link">getCachedFileNamesForTest</a>()</code></div> |
| <div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Used in testing.</div> |
| </div> |
| <div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>long</code></div> |
| <div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getCurrentBloomSize()" class="member-name-link">getCurrentBloomSize</a>()</code></div> |
| <div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> </div> |
| <div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>long</code></div> |
| <div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getCurrentDataSize()" class="member-name-link">getCurrentDataSize</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 the occupied size of data blocks, in bytes.</div> |
| </div> |
| <div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>long</code></div> |
| <div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getCurrentIndexSize()" class="member-name-link">getCurrentIndexSize</a>()</code></div> |
| <div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> </div> |
| <div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>long</code></div> |
| <div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getCurrentSize()" class="member-name-link">getCurrentSize</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 the occupied size of the block cache, in bytes.</div> |
| </div> |
| <div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>long</code></div> |
| <div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getDataBlockCount()" class="member-name-link">getDataBlockCount</a>()</code></div> |
| <div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Returns the number of data blocks currently cached in the block cache.</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/util/Map.html" title="class or interface in java.util" class="external-link">Map</a><<a href="../encoding/DataBlockEncoding.html" title="enum class in org.apache.hadoop.hbase.io.encoding">DataBlockEncoding</a>,<wbr><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Integer.html" title="class or interface in java.lang" class="external-link">Integer</a>></code></div> |
| <div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getEncodingCountsForTest()" class="member-name-link">getEncodingCountsForTest</a>()</code></div> |
| <div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> </div> |
| <div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>(package private) <a href="LruBlockCache.EvictionThread.html" title="class in org.apache.hadoop.hbase.io.hfile">LruBlockCache.EvictionThread</a></code></div> |
| <div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getEvictionThread()" class="member-name-link">getEvictionThread</a>()</code></div> |
| <div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> </div> |
| <div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>long</code></div> |
| <div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getFreeSize()" class="member-name-link">getFreeSize</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 the free size of the block cache, in bytes.</div> |
| </div> |
| <div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>long</code></div> |
| <div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getIndexBlockCount()" class="member-name-link">getIndexBlockCount</a>()</code></div> |
| <div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> </div> |
| <div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>(package private) <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Map.html" title="class or interface in java.util" class="external-link">Map</a><<a href="BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a>,<wbr><a href="LruCachedBlock.html" title="class in org.apache.hadoop.hbase.io.hfile">LruCachedBlock</a>></code></div> |
| <div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getMapForTests()" class="member-name-link">getMapForTests</a>()</code></div> |
| <div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> </div> |
| <div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>long</code></div> |
| <div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getMaxSize()" class="member-name-link">getMaxSize</a>()</code></div> |
| <div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Get the maximum size of this cache.</div> |
| </div> |
| <div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>(package private) long</code></div> |
| <div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getOverhead()" class="member-name-link">getOverhead</a>()</code></div> |
| <div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> </div> |
| <div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="CacheStats.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheStats</a></code></div> |
| <div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getStats()" class="member-name-link">getStats</a>()</code></div> |
| <div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Get counter statistics for this cache.</div> |
| </div> |
| <div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>long</code></div> |
| <div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#heapSize()" class="member-name-link">heapSize</a>()</code></div> |
| <div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Return the approximate 'exclusive deep size' of implementing object.</div> |
| </div> |
| <div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>(package private) boolean</code></div> |
| <div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#isEvictionInProgress()" class="member-name-link">isEvictionInProgress</a>()</code></div> |
| <div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> </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/util/Iterator.html" title="class or interface in java.util" class="external-link">Iterator</a><<a href="CachedBlock.html" title="interface in org.apache.hadoop.hbase.io.hfile">CachedBlock</a>></code></div> |
| <div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#iterator()" class="member-name-link">iterator</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 Iterator over the blocks in the cache.</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="#logStats()" class="member-name-link">logStats</a>()</code></div> |
| <div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> </div> |
| <div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>private long</code></div> |
| <div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#memorySize()" class="member-name-link">memorySize</a>()</code></div> |
| <div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> </div> |
| <div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>private long</code></div> |
| <div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#minSize()" class="member-name-link">minSize</a>()</code></div> |
| <div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> </div> |
| <div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>private long</code></div> |
| <div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#multiSize()" class="member-name-link">multiSize</a>()</code></div> |
| <div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> </div> |
| <div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>private void</code></div> |
| <div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#runEviction()" class="member-name-link">runEviction</a>()</code></div> |
| <div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Multi-threaded call to run the eviction process.</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="#setMaxSize(long)" class="member-name-link">setMaxSize</a><wbr>(long maxSize)</code></div> |
| <div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Sets the max heap size that can be used by the BlockCache.</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="#setVictimCache(org.apache.hadoop.hbase.io.hfile.BlockCache)" class="member-name-link">setVictimCache</a><wbr>(<a href="BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a> victimCache)</code></div> |
| <div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Specifies the secondary cache.</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="#shutdown()" class="member-name-link">shutdown</a>()</code></div> |
| <div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Shutdown the cache.</div> |
| </div> |
| <div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>private long</code></div> |
| <div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#singleSize()" class="member-name-link">singleSize</a>()</code></div> |
| <div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> </div> |
| <div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>long</code></div> |
| <div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#size()" class="member-name-link">size</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 the total size of the block cache, in bytes.</div> |
| </div> |
| <div class="col-first odd-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 odd-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 odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> </div> |
| <div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>private long</code></div> |
| <div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#updateSizeMetrics(org.apache.hadoop.hbase.io.hfile.LruCachedBlock,boolean)" class="member-name-link">updateSizeMetrics</a><wbr>(<a href="LruCachedBlock.html" title="class in org.apache.hadoop.hbase.io.hfile">LruCachedBlock</a> cb, |
| boolean evict)</code></div> |
| <div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"> |
| <div class="block">Helper function that updates the local size counter and also updates any per-cf or |
| per-blocktype metrics it can discern from given <a href="LruCachedBlock.html" title="class in org.apache.hadoop.hbase.io.hfile"><code>LruCachedBlock</code></a></div> |
| </div> |
| </div> |
| </div> |
| </div> |
| <div class="inherited-list"> |
| <h3 id="methods-inherited-from-class-java.lang.Object">Methods inherited from class 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.io.hfile.BlockCache">Methods inherited from interface org.apache.hadoop.hbase.io.hfile.<a href="BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a></h3> |
| <code><a href="BlockCache.html#blockFitsIntoTheCache(org.apache.hadoop.hbase.io.hfile.HFileBlock)">blockFitsIntoTheCache</a>, <a href="BlockCache.html#cacheBlock(org.apache.hadoop.hbase.io.hfile.BlockCacheKey,org.apache.hadoop.hbase.io.hfile.Cacheable,boolean,boolean)">cacheBlock</a>, <a href="BlockCache.html#evictBlocksRangeByHfileName(java.lang.String,long,long)">evictBlocksRangeByHfileName</a>, <a href="BlockCache.html#getBlock(org.apache.hadoop.hbase.io.hfile.BlockCacheKey,boolean,boolean,boolean,org.apache.hadoop.hbase.io.hfile.BlockType)">getBlock</a>, <a href="BlockCache.html#getBlockSize(org.apache.hadoop.hbase.io.hfile.BlockCacheKey)">getBlockSize</a>, <a href="BlockCache.html#getFullyCachedFiles()">getFullyCachedFiles</a>, <a href="BlockCache.html#getRegionCachedInfo()">getRegionCachedInfo</a>, <a href="BlockCache.html#isAlreadyCached(org.apache.hadoop.hbase.io.hfile.BlockCacheKey)">isAlreadyCached</a>, <a href="BlockCache.html#isCacheEnabled()">isCacheEnabled</a>, <a href="BlockCache.html#isMetaBlock(org.apache.hadoop.hbase.io.hfile.BlockType)">isMetaBlock</a>, <a href="BlockCache.html#notifyFileCachingCompleted(org.apache.hadoop.fs.Path,int,int,long)">notifyFileCachingCompleted</a>, <a href="BlockCache.html#shouldCacheFile(java.lang.String)">shouldCacheFile</a>, <a href="BlockCache.html#waitForCacheInitialization(long)">waitForCacheInitialization</a></code></div> |
| <div class="inherited-list"> |
| <h3 id="methods-inherited-from-class-java.lang.Iterable">Methods inherited from interface java.lang.<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Iterable.html" title="class or interface in java.lang" class="external-link">Iterable</a></h3> |
| <code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Iterable.html#forEach(java.util.function.Consumer)" title="class or interface in java.lang" class="external-link">forEach</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Iterable.html#spliterator()" title="class or interface in java.lang" class="external-link">spliterator</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="LOG"> |
| <h3>LOG</h3> |
| <div class="member-signature"><span class="modifiers">private static final</span> <span class="return-type">org.slf4j.Logger</span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-91">LOG</a></span></div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="LRU_MIN_FACTOR_CONFIG_NAME"> |
| <h3>LRU_MIN_FACTOR_CONFIG_NAME</h3> |
| <div class="member-signature"><span class="modifiers">private static final</span> <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> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-97">LRU_MIN_FACTOR_CONFIG_NAME</a></span></div> |
| <div class="block">Percentage of total size that eviction will evict until; e.g. if set to .8, then we will keep |
| evicting during an eviction run till the cache size is down to 80% of the total.</div> |
| <dl class="notes"> |
| <dt>See Also:</dt> |
| <dd> |
| <ul class="see-list"> |
| <li><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.io.hfile.LruBlockCache.LRU_MIN_FACTOR_CONFIG_NAME">Constant Field Values</a></li> |
| </ul> |
| </dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="LRU_ACCEPTABLE_FACTOR_CONFIG_NAME"> |
| <h3>LRU_ACCEPTABLE_FACTOR_CONFIG_NAME</h3> |
| <div class="member-signature"><span class="modifiers">private static final</span> <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> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-102">LRU_ACCEPTABLE_FACTOR_CONFIG_NAME</a></span></div> |
| <div class="block">Acceptable size of cache (no evictions if size < acceptable)</div> |
| <dl class="notes"> |
| <dt>See Also:</dt> |
| <dd> |
| <ul class="see-list"> |
| <li><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.io.hfile.LruBlockCache.LRU_ACCEPTABLE_FACTOR_CONFIG_NAME">Constant Field Values</a></li> |
| </ul> |
| </dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="LRU_HARD_CAPACITY_LIMIT_FACTOR_CONFIG_NAME"> |
| <h3>LRU_HARD_CAPACITY_LIMIT_FACTOR_CONFIG_NAME</h3> |
| <div class="member-signature"><span class="modifiers">static final</span> <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> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-108">LRU_HARD_CAPACITY_LIMIT_FACTOR_CONFIG_NAME</a></span></div> |
| <div class="block">Hard capacity limit of cache, will reject any put if size > this * acceptable</div> |
| <dl class="notes"> |
| <dt>See Also:</dt> |
| <dd> |
| <ul class="see-list"> |
| <li><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.io.hfile.LruBlockCache.LRU_HARD_CAPACITY_LIMIT_FACTOR_CONFIG_NAME">Constant Field Values</a></li> |
| </ul> |
| </dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="LRU_SINGLE_PERCENTAGE_CONFIG_NAME"> |
| <h3>LRU_SINGLE_PERCENTAGE_CONFIG_NAME</h3> |
| <div class="member-signature"><span class="modifiers">private static final</span> <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> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-110">LRU_SINGLE_PERCENTAGE_CONFIG_NAME</a></span></div> |
| <dl class="notes"> |
| <dt>See Also:</dt> |
| <dd> |
| <ul class="see-list"> |
| <li><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.io.hfile.LruBlockCache.LRU_SINGLE_PERCENTAGE_CONFIG_NAME">Constant Field Values</a></li> |
| </ul> |
| </dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="LRU_MULTI_PERCENTAGE_CONFIG_NAME"> |
| <h3>LRU_MULTI_PERCENTAGE_CONFIG_NAME</h3> |
| <div class="member-signature"><span class="modifiers">private static final</span> <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> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-112">LRU_MULTI_PERCENTAGE_CONFIG_NAME</a></span></div> |
| <dl class="notes"> |
| <dt>See Also:</dt> |
| <dd> |
| <ul class="see-list"> |
| <li><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.io.hfile.LruBlockCache.LRU_MULTI_PERCENTAGE_CONFIG_NAME">Constant Field Values</a></li> |
| </ul> |
| </dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="LRU_MEMORY_PERCENTAGE_CONFIG_NAME"> |
| <h3>LRU_MEMORY_PERCENTAGE_CONFIG_NAME</h3> |
| <div class="member-signature"><span class="modifiers">private static final</span> <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> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-114">LRU_MEMORY_PERCENTAGE_CONFIG_NAME</a></span></div> |
| <dl class="notes"> |
| <dt>See Also:</dt> |
| <dd> |
| <ul class="see-list"> |
| <li><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.io.hfile.LruBlockCache.LRU_MEMORY_PERCENTAGE_CONFIG_NAME">Constant Field Values</a></li> |
| </ul> |
| </dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="LRU_IN_MEMORY_FORCE_MODE_CONFIG_NAME"> |
| <h3>LRU_IN_MEMORY_FORCE_MODE_CONFIG_NAME</h3> |
| <div class="member-signature"><span class="modifiers">private static final</span> <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> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-122">LRU_IN_MEMORY_FORCE_MODE_CONFIG_NAME</a></span></div> |
| <div class="block">Configuration key to force data-block always (except in-memory are too much) cached in memory |
| for in-memory hfile, unlike inMemory, which is a column-family configuration, inMemoryForceMode |
| is a cluster-wide configuration</div> |
| <dl class="notes"> |
| <dt>See Also:</dt> |
| <dd> |
| <ul class="see-list"> |
| <li><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.io.hfile.LruBlockCache.LRU_IN_MEMORY_FORCE_MODE_CONFIG_NAME">Constant Field Values</a></li> |
| </ul> |
| </dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="DEFAULT_LOAD_FACTOR"> |
| <h3>DEFAULT_LOAD_FACTOR</h3> |
| <div class="member-signature"><span class="modifiers">static final</span> <span class="return-type">float</span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-128">DEFAULT_LOAD_FACTOR</a></span></div> |
| <dl class="notes"> |
| <dt>See Also:</dt> |
| <dd> |
| <ul class="see-list"> |
| <li><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.io.hfile.LruBlockCache.DEFAULT_LOAD_FACTOR">Constant Field Values</a></li> |
| </ul> |
| </dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="DEFAULT_CONCURRENCY_LEVEL"> |
| <h3>DEFAULT_CONCURRENCY_LEVEL</h3> |
| <div class="member-signature"><span class="modifiers">static final</span> <span class="return-type">int</span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-129">DEFAULT_CONCURRENCY_LEVEL</a></span></div> |
| <dl class="notes"> |
| <dt>See Also:</dt> |
| <dd> |
| <ul class="see-list"> |
| <li><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.io.hfile.LruBlockCache.DEFAULT_CONCURRENCY_LEVEL">Constant Field Values</a></li> |
| </ul> |
| </dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="DEFAULT_MIN_FACTOR"> |
| <h3>DEFAULT_MIN_FACTOR</h3> |
| <div class="member-signature"><span class="modifiers">private static final</span> <span class="return-type">float</span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-132">DEFAULT_MIN_FACTOR</a></span></div> |
| <dl class="notes"> |
| <dt>See Also:</dt> |
| <dd> |
| <ul class="see-list"> |
| <li><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.io.hfile.LruBlockCache.DEFAULT_MIN_FACTOR">Constant Field Values</a></li> |
| </ul> |
| </dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="DEFAULT_ACCEPTABLE_FACTOR"> |
| <h3>DEFAULT_ACCEPTABLE_FACTOR</h3> |
| <div class="member-signature"><span class="modifiers">static final</span> <span class="return-type">float</span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-133">DEFAULT_ACCEPTABLE_FACTOR</a></span></div> |
| <dl class="notes"> |
| <dt>See Also:</dt> |
| <dd> |
| <ul class="see-list"> |
| <li><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.io.hfile.LruBlockCache.DEFAULT_ACCEPTABLE_FACTOR">Constant Field Values</a></li> |
| </ul> |
| </dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="DEFAULT_SINGLE_FACTOR"> |
| <h3>DEFAULT_SINGLE_FACTOR</h3> |
| <div class="member-signature"><span class="modifiers">private static final</span> <span class="return-type">float</span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-136">DEFAULT_SINGLE_FACTOR</a></span></div> |
| <dl class="notes"> |
| <dt>See Also:</dt> |
| <dd> |
| <ul class="see-list"> |
| <li><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.io.hfile.LruBlockCache.DEFAULT_SINGLE_FACTOR">Constant Field Values</a></li> |
| </ul> |
| </dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="DEFAULT_MULTI_FACTOR"> |
| <h3>DEFAULT_MULTI_FACTOR</h3> |
| <div class="member-signature"><span class="modifiers">private static final</span> <span class="return-type">float</span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-137">DEFAULT_MULTI_FACTOR</a></span></div> |
| <dl class="notes"> |
| <dt>See Also:</dt> |
| <dd> |
| <ul class="see-list"> |
| <li><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.io.hfile.LruBlockCache.DEFAULT_MULTI_FACTOR">Constant Field Values</a></li> |
| </ul> |
| </dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="DEFAULT_MEMORY_FACTOR"> |
| <h3>DEFAULT_MEMORY_FACTOR</h3> |
| <div class="member-signature"><span class="modifiers">private static final</span> <span class="return-type">float</span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-138">DEFAULT_MEMORY_FACTOR</a></span></div> |
| <dl class="notes"> |
| <dt>See Also:</dt> |
| <dd> |
| <ul class="see-list"> |
| <li><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.io.hfile.LruBlockCache.DEFAULT_MEMORY_FACTOR">Constant Field Values</a></li> |
| </ul> |
| </dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="DEFAULT_HARD_CAPACITY_LIMIT_FACTOR"> |
| <h3>DEFAULT_HARD_CAPACITY_LIMIT_FACTOR</h3> |
| <div class="member-signature"><span class="modifiers">private static final</span> <span class="return-type">float</span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-140">DEFAULT_HARD_CAPACITY_LIMIT_FACTOR</a></span></div> |
| <dl class="notes"> |
| <dt>See Also:</dt> |
| <dd> |
| <ul class="see-list"> |
| <li><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.io.hfile.LruBlockCache.DEFAULT_HARD_CAPACITY_LIMIT_FACTOR">Constant Field Values</a></li> |
| </ul> |
| </dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="DEFAULT_IN_MEMORY_FORCE_MODE"> |
| <h3>DEFAULT_IN_MEMORY_FORCE_MODE</h3> |
| <div class="member-signature"><span class="modifiers">private static final</span> <span class="return-type">boolean</span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-142">DEFAULT_IN_MEMORY_FORCE_MODE</a></span></div> |
| <dl class="notes"> |
| <dt>See Also:</dt> |
| <dd> |
| <ul class="see-list"> |
| <li><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.io.hfile.LruBlockCache.DEFAULT_IN_MEMORY_FORCE_MODE">Constant Field Values</a></li> |
| </ul> |
| </dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="STAT_THREAD_PERIOD"> |
| <h3>STAT_THREAD_PERIOD</h3> |
| <div class="member-signature"><span class="modifiers">private static final</span> <span class="return-type">int</span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-145">STAT_THREAD_PERIOD</a></span></div> |
| <dl class="notes"> |
| <dt>See Also:</dt> |
| <dd> |
| <ul class="see-list"> |
| <li><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.io.hfile.LruBlockCache.STAT_THREAD_PERIOD">Constant Field Values</a></li> |
| </ul> |
| </dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="LRU_MAX_BLOCK_SIZE"> |
| <h3>LRU_MAX_BLOCK_SIZE</h3> |
| <div class="member-signature"><span class="modifiers">private static final</span> <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> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-146">LRU_MAX_BLOCK_SIZE</a></span></div> |
| <dl class="notes"> |
| <dt>See Also:</dt> |
| <dd> |
| <ul class="see-list"> |
| <li><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.io.hfile.LruBlockCache.LRU_MAX_BLOCK_SIZE">Constant Field Values</a></li> |
| </ul> |
| </dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="DEFAULT_MAX_BLOCK_SIZE"> |
| <h3>DEFAULT_MAX_BLOCK_SIZE</h3> |
| <div class="member-signature"><span class="modifiers">private static final</span> <span class="return-type">long</span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-147">DEFAULT_MAX_BLOCK_SIZE</a></span></div> |
| <dl class="notes"> |
| <dt>See Also:</dt> |
| <dd> |
| <ul class="see-list"> |
| <li><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.io.hfile.LruBlockCache.DEFAULT_MAX_BLOCK_SIZE">Constant Field Values</a></li> |
| </ul> |
| </dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="map"> |
| <h3>map</h3> |
| <div class="member-signature"><span class="modifiers">private final transient</span> <span class="return-type"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/concurrent/ConcurrentHashMap.html" title="class or interface in java.util.concurrent" class="external-link">ConcurrentHashMap</a><<a href="BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a>,<wbr><a href="LruCachedBlock.html" title="class in org.apache.hadoop.hbase.io.hfile">LruCachedBlock</a>></span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-158">map</a></span></div> |
| <div class="block">Defined the cache map as <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/concurrent/ConcurrentHashMap.html" title="class or interface in java.util.concurrent" class="external-link"><code>ConcurrentHashMap</code></a> here, because in |
| <a href="#getBlock(org.apache.hadoop.hbase.io.hfile.BlockCacheKey,boolean,boolean,boolean)"><code>getBlock(org.apache.hadoop.hbase.io.hfile.BlockCacheKey, boolean, boolean, boolean)</code></a>, we need to guarantee the atomicity of map#k (key, func). |
| Besides, the func method must execute exactly once only when the key is present and under the |
| lock context, otherwise the reference count will be messed up. Notice that the |
| <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/concurrent/ConcurrentSkipListMap.html" title="class or interface in java.util.concurrent" class="external-link"><code>ConcurrentSkipListMap</code></a> can not guarantee that. Some code using |
| #computeIfPresent also expects the supplier to be executed only once. ConcurrentHashMap can |
| guarantee that. Other types may not.</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="evictionLock"> |
| <h3>evictionLock</h3> |
| <div class="member-signature"><span class="modifiers">private final transient</span> <span class="return-type"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/concurrent/locks/ReentrantLock.html" title="class or interface in java.util.concurrent.locks" class="external-link">ReentrantLock</a></span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-161">evictionLock</a></span></div> |
| <div class="block">Eviction lock (locked when eviction in process)</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="maxBlockSize"> |
| <h3>maxBlockSize</h3> |
| <div class="member-signature"><span class="modifiers">private final</span> <span class="return-type">long</span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-163">maxBlockSize</a></span></div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="evictionInProgress"> |
| <h3>evictionInProgress</h3> |
| <div class="member-signature"><span class="modifiers">private volatile</span> <span class="return-type">boolean</span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-166">evictionInProgress</a></span></div> |
| <div class="block">Volatile boolean to track if we are in an eviction process or not</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="evictionThread"> |
| <h3>evictionThread</h3> |
| <div class="member-signature"><span class="modifiers">private final transient</span> <span class="return-type"><a href="LruBlockCache.EvictionThread.html" title="class in org.apache.hadoop.hbase.io.hfile">LruBlockCache.EvictionThread</a></span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-169">evictionThread</a></span></div> |
| <div class="block">Eviction thread</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="scheduleThreadPool"> |
| <h3>scheduleThreadPool</h3> |
| <div class="member-signature"><span class="modifiers">private final transient</span> <span class="return-type"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/concurrent/ScheduledExecutorService.html" title="class or interface in java.util.concurrent" class="external-link">ScheduledExecutorService</a></span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-172">scheduleThreadPool</a></span></div> |
| <div class="block">Statistics thread schedule pool (for heavy debugging, could remove)</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="size"> |
| <h3>size</h3> |
| <div class="member-signature"><span class="modifiers">private final</span> <span class="return-type"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/concurrent/atomic/AtomicLong.html" title="class or interface in java.util.concurrent.atomic" class="external-link">AtomicLong</a></span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-177">size</a></span></div> |
| <div class="block">Current size of cache</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="dataBlockSize"> |
| <h3>dataBlockSize</h3> |
| <div class="member-signature"><span class="modifiers">private final</span> <span class="return-type"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/concurrent/atomic/LongAdder.html" title="class or interface in java.util.concurrent.atomic" class="external-link">LongAdder</a></span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-180">dataBlockSize</a></span></div> |
| <div class="block">Current size of data blocks</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="indexBlockSize"> |
| <h3>indexBlockSize</h3> |
| <div class="member-signature"><span class="modifiers">private final</span> <span class="return-type"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/concurrent/atomic/LongAdder.html" title="class or interface in java.util.concurrent.atomic" class="external-link">LongAdder</a></span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-183">indexBlockSize</a></span></div> |
| <div class="block">Current size of index blocks</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="bloomBlockSize"> |
| <h3>bloomBlockSize</h3> |
| <div class="member-signature"><span class="modifiers">private final</span> <span class="return-type"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/concurrent/atomic/LongAdder.html" title="class or interface in java.util.concurrent.atomic" class="external-link">LongAdder</a></span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-186">bloomBlockSize</a></span></div> |
| <div class="block">Current size of bloom blocks</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="elements"> |
| <h3>elements</h3> |
| <div class="member-signature"><span class="modifiers">private final</span> <span class="return-type"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/concurrent/atomic/AtomicLong.html" title="class or interface in java.util.concurrent.atomic" class="external-link">AtomicLong</a></span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-189">elements</a></span></div> |
| <div class="block">Current number of cached elements</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="dataBlockElements"> |
| <h3>dataBlockElements</h3> |
| <div class="member-signature"><span class="modifiers">private final</span> <span class="return-type"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/concurrent/atomic/LongAdder.html" title="class or interface in java.util.concurrent.atomic" class="external-link">LongAdder</a></span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-192">dataBlockElements</a></span></div> |
| <div class="block">Current number of cached data block elements</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="indexBlockElements"> |
| <h3>indexBlockElements</h3> |
| <div class="member-signature"><span class="modifiers">private final</span> <span class="return-type"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/concurrent/atomic/LongAdder.html" title="class or interface in java.util.concurrent.atomic" class="external-link">LongAdder</a></span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-195">indexBlockElements</a></span></div> |
| <div class="block">Current number of cached index block elements</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="bloomBlockElements"> |
| <h3>bloomBlockElements</h3> |
| <div class="member-signature"><span class="modifiers">private final</span> <span class="return-type"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/concurrent/atomic/LongAdder.html" title="class or interface in java.util.concurrent.atomic" class="external-link">LongAdder</a></span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-198">bloomBlockElements</a></span></div> |
| <div class="block">Current number of cached bloom block elements</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="count"> |
| <h3>count</h3> |
| <div class="member-signature"><span class="modifiers">private final</span> <span class="return-type"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/concurrent/atomic/AtomicLong.html" title="class or interface in java.util.concurrent.atomic" class="external-link">AtomicLong</a></span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-201">count</a></span></div> |
| <div class="block">Cache access count (sequential ID)</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="hardCapacityLimitFactor"> |
| <h3>hardCapacityLimitFactor</h3> |
| <div class="member-signature"><span class="modifiers">private</span> <span class="return-type">float</span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-204">hardCapacityLimitFactor</a></span></div> |
| <div class="block">hard capacity limit</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="stats"> |
| <h3>stats</h3> |
| <div class="member-signature"><span class="modifiers">private final</span> <span class="return-type"><a href="CacheStats.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheStats</a></span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-207">stats</a></span></div> |
| <div class="block">Cache statistics</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="maxSize"> |
| <h3>maxSize</h3> |
| <div class="member-signature"><span class="modifiers">private</span> <span class="return-type">long</span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-210">maxSize</a></span></div> |
| <div class="block">Maximum allowable size of cache (block put if size > max, evict)</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="blockSize"> |
| <h3>blockSize</h3> |
| <div class="member-signature"><span class="modifiers">private</span> <span class="return-type">long</span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-213">blockSize</a></span></div> |
| <div class="block">Approximate block size</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="acceptableFactor"> |
| <h3>acceptableFactor</h3> |
| <div class="member-signature"><span class="modifiers">private</span> <span class="return-type">float</span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-216">acceptableFactor</a></span></div> |
| <div class="block">Acceptable size of cache (no evictions if size < acceptable)</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="minFactor"> |
| <h3>minFactor</h3> |
| <div class="member-signature"><span class="modifiers">private</span> <span class="return-type">float</span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-219">minFactor</a></span></div> |
| <div class="block">Minimum threshold of cache (when evicting, evict until size < min)</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="singleFactor"> |
| <h3>singleFactor</h3> |
| <div class="member-signature"><span class="modifiers">private</span> <span class="return-type">float</span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-222">singleFactor</a></span></div> |
| <div class="block">Single access bucket size</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="multiFactor"> |
| <h3>multiFactor</h3> |
| <div class="member-signature"><span class="modifiers">private</span> <span class="return-type">float</span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-225">multiFactor</a></span></div> |
| <div class="block">Multiple access bucket size</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="memoryFactor"> |
| <h3>memoryFactor</h3> |
| <div class="member-signature"><span class="modifiers">private</span> <span class="return-type">float</span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-228">memoryFactor</a></span></div> |
| <div class="block">In-memory bucket size</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="overhead"> |
| <h3>overhead</h3> |
| <div class="member-signature"><span class="modifiers">private</span> <span class="return-type">long</span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-231">overhead</a></span></div> |
| <div class="block">Overhead of the structure itself</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="forceInMemory"> |
| <h3>forceInMemory</h3> |
| <div class="member-signature"><span class="modifiers">private</span> <span class="return-type">boolean</span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-234">forceInMemory</a></span></div> |
| <div class="block">Whether in-memory hfile's data block has higher priority when evicting</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="victimHandler"> |
| <h3>victimHandler</h3> |
| <div class="member-signature"><span class="modifiers">private transient</span> <span class="return-type"><a href="BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a></span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-240">victimHandler</a></span></div> |
| <div class="block">Where to send victims (blocks evicted/missing from the cache). This is used only when we use an |
| external cache as L2. Note: See org.apache.hadoop.hbase.io.hfile.MemcachedBlockCache</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="CACHE_FIXED_OVERHEAD"> |
| <h3>CACHE_FIXED_OVERHEAD</h3> |
| <div class="member-signature"><span class="modifiers">public static final</span> <span class="return-type">long</span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-1047">CACHE_FIXED_OVERHEAD</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="<init>(long,long)"> |
| <h3>LruBlockCache</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-250">LruBlockCache</a></span><wbr><span class="parameters">(long maxSize, |
| long blockSize)</span></div> |
| <div class="block">Default constructor. Specify maximum size and expected average block size (approximation is |
| fine). |
| <p> |
| All other factors will be calculated based on defaults specified in this class.</div> |
| <dl class="notes"> |
| <dt>Parameters:</dt> |
| <dd><code>maxSize</code> - maximum size of cache, in bytes</dd> |
| <dd><code>blockSize</code> - approximate size of each block, in bytes</dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="<init>(long,long,boolean)"> |
| <h3>LruBlockCache</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-257">LruBlockCache</a></span><wbr><span class="parameters">(long maxSize, |
| long blockSize, |
| boolean evictionThread)</span></div> |
| <div class="block">Constructor used for testing. Allows disabling of the eviction thread.</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="<init>(long,long,boolean,org.apache.hadoop.conf.Configuration)"> |
| <h3>LruBlockCache</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-264">LruBlockCache</a></span><wbr><span class="parameters">(long maxSize, |
| long blockSize, |
| boolean evictionThread, |
| org.apache.hadoop.conf.Configuration conf)</span></div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="<init>(long,long,org.apache.hadoop.conf.Configuration)"> |
| <h3>LruBlockCache</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-277">LruBlockCache</a></span><wbr><span class="parameters">(long maxSize, |
| long blockSize, |
| org.apache.hadoop.conf.Configuration conf)</span></div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="<init>(long,long,boolean,int,float,int,float,float,float,float,float,float,boolean,long)"> |
| <h3>LruBlockCache</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-295">LruBlockCache</a></span><wbr><span class="parameters">(long maxSize, |
| long blockSize, |
| boolean evictionThread, |
| int mapInitialSize, |
| float mapLoadFactor, |
| int mapConcurrencyLevel, |
| float minFactor, |
| float acceptableFactor, |
| float singleFactor, |
| float multiFactor, |
| float memoryFactor, |
| float hardLimitFactor, |
| boolean forceInMemory, |
| long maxBlockSize)</span></div> |
| <div class="block">Configurable constructor. Use this constructor if not using defaults.</div> |
| <dl class="notes"> |
| <dt>Parameters:</dt> |
| <dd><code>maxSize</code> - maximum size of this cache, in bytes</dd> |
| <dd><code>blockSize</code> - expected average size of blocks, in bytes</dd> |
| <dd><code>evictionThread</code> - whether to run evictions in a bg thread or not</dd> |
| <dd><code>mapInitialSize</code> - initial size of backing ConcurrentHashMap</dd> |
| <dd><code>mapLoadFactor</code> - initial load factor of backing ConcurrentHashMap</dd> |
| <dd><code>mapConcurrencyLevel</code> - initial concurrency factor for backing CHM</dd> |
| <dd><code>minFactor</code> - percentage of total size that eviction will evict until</dd> |
| <dd><code>acceptableFactor</code> - percentage of total size that triggers eviction</dd> |
| <dd><code>singleFactor</code> - percentage of total size for single-access blocks</dd> |
| <dd><code>multiFactor</code> - percentage of total size for multiple-access blocks</dd> |
| <dd><code>memoryFactor</code> - percentage of total size for in-memory blocks</dd> |
| </dl> |
| </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="setVictimCache(org.apache.hadoop.hbase.io.hfile.BlockCache)"> |
| <h3>setVictimCache</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">void</span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-340">setVictimCache</a></span><wbr><span class="parameters">(<a href="BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a> victimCache)</span></div> |
| <div class="block"><span class="descfrm-type-label">Description copied from interface: <code><a href="FirstLevelBlockCache.html#setVictimCache(org.apache.hadoop.hbase.io.hfile.BlockCache)">FirstLevelBlockCache</a></code></span></div> |
| <div class="block">Specifies the secondary cache. An entry that is evicted from this cache due to a size |
| constraint will be inserted into the victim cache.</div> |
| <dl class="notes"> |
| <dt>Specified by:</dt> |
| <dd><code><a href="FirstLevelBlockCache.html#setVictimCache(org.apache.hadoop.hbase.io.hfile.BlockCache)">setVictimCache</a></code> in interface <code><a href="FirstLevelBlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">FirstLevelBlockCache</a></code></dd> |
| <dt>Parameters:</dt> |
| <dd><code>victimCache</code> - the second level cache</dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="setMaxSize(long)"> |
| <h3>setMaxSize</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">void</span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-348">setMaxSize</a></span><wbr><span class="parameters">(long maxSize)</span></div> |
| <div class="block"><span class="descfrm-type-label">Description copied from interface: <code><a href="ResizableBlockCache.html#setMaxSize(long)">ResizableBlockCache</a></code></span></div> |
| <div class="block">Sets the max heap size that can be used by the BlockCache.</div> |
| <dl class="notes"> |
| <dt>Specified by:</dt> |
| <dd><code><a href="ResizableBlockCache.html#setMaxSize(long)">setMaxSize</a></code> in interface <code><a href="ResizableBlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">ResizableBlockCache</a></code></dd> |
| <dt>Parameters:</dt> |
| <dd><code>maxSize</code> - The max heap size.</dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="asReferencedHeapBlock(org.apache.hadoop.hbase.io.hfile.Cacheable)"> |
| <h3>asReferencedHeapBlock</h3> |
| <div class="member-signature"><span class="modifiers">private</span> <span class="return-type"><a href="Cacheable.html" title="interface in org.apache.hadoop.hbase.io.hfile">Cacheable</a></span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-371">asReferencedHeapBlock</a></span><wbr><span class="parameters">(<a href="Cacheable.html" title="interface in org.apache.hadoop.hbase.io.hfile">Cacheable</a> buf)</span></div> |
| <div class="block">The block cached in LRUBlockCache will always be an heap block: on the one side, the heap |
| access will be more faster then off-heap, the small index block or meta block cached in |
| CombinedBlockCache will benefit a lot. on other side, the LRUBlockCache size is always |
| calculated based on the total heap size, if caching an off-heap block in LRUBlockCache, the |
| heap size will be messed up. Here we will clone the block into an heap block if it's an |
| off-heap block, otherwise just use the original block. The key point is maintain the refCnt of |
| the block (HBASE-22127): <br> |
| 1. if cache the cloned heap block, its refCnt is an totally new one, it's easy to handle; <br> |
| 2. if cache the original heap block, we're sure that it won't be tracked in ByteBuffAllocator's |
| reservoir, if both RPC and LRUBlockCache release the block, then it can be garbage collected by |
| JVM, so need a retain here.</div> |
| <dl class="notes"> |
| <dt>Parameters:</dt> |
| <dd><code>buf</code> - the original block</dd> |
| <dt>Returns:</dt> |
| <dd>an block with an heap memory backend.</dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="cacheBlock(org.apache.hadoop.hbase.io.hfile.BlockCacheKey,org.apache.hadoop.hbase.io.hfile.Cacheable,boolean)"> |
| <h3>cacheBlock</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">void</span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-393">cacheBlock</a></span><wbr><span class="parameters">(<a href="BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a> cacheKey, |
| <a href="Cacheable.html" title="interface in org.apache.hadoop.hbase.io.hfile">Cacheable</a> buf, |
| boolean inMemory)</span></div> |
| <div class="block">Cache the block with the specified name and buffer. |
| <p> |
| It is assumed this will NOT be called on an already cached block. In rare cases (HBASE-8547) |
| this can happen, for which we compare the buffer contents.</div> |
| <dl class="notes"> |
| <dt>Specified by:</dt> |
| <dd><code><a href="BlockCache.html#cacheBlock(org.apache.hadoop.hbase.io.hfile.BlockCacheKey,org.apache.hadoop.hbase.io.hfile.Cacheable,boolean)">cacheBlock</a></code> in interface <code><a href="BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a></code></dd> |
| <dt>Parameters:</dt> |
| <dd><code>cacheKey</code> - block's cache key</dd> |
| <dd><code>buf</code> - block buffer</dd> |
| <dd><code>inMemory</code> - if block is in-memory</dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="assertCounterSanity(long,long)"> |
| <h3>assertCounterSanity</h3> |
| <div class="member-signature"><span class="modifiers">private static</span> <span class="return-type">void</span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-453">assertCounterSanity</a></span><wbr><span class="parameters">(long mapSize, |
| long counterVal)</span></div> |
| <div class="block">Sanity-checking for parity between actual block cache content and metrics. Intended only for |
| use with TRACE level logging and -ea JVM.</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="cacheBlock(org.apache.hadoop.hbase.io.hfile.BlockCacheKey,org.apache.hadoop.hbase.io.hfile.Cacheable)"> |
| <h3>cacheBlock</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">void</span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-478">cacheBlock</a></span><wbr><span class="parameters">(<a href="BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a> cacheKey, |
| <a href="Cacheable.html" title="interface in org.apache.hadoop.hbase.io.hfile">Cacheable</a> buf)</span></div> |
| <div class="block">Cache the block with the specified name and buffer. |
| <p> |
| TODO after HBASE-22005, we may cache an block which allocated from off-heap, but our LRU cache |
| sizing is based on heap size, so we should handle this in HBASE-22127. It will introduce an |
| switch whether make the LRU on-heap or not, if so we may need copy the memory to on-heap, |
| otherwise the caching size is based on off-heap.</div> |
| <dl class="notes"> |
| <dt>Specified by:</dt> |
| <dd><code><a href="BlockCache.html#cacheBlock(org.apache.hadoop.hbase.io.hfile.BlockCacheKey,org.apache.hadoop.hbase.io.hfile.Cacheable)">cacheBlock</a></code> in interface <code><a href="BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a></code></dd> |
| <dt>Parameters:</dt> |
| <dd><code>cacheKey</code> - block's cache key</dd> |
| <dd><code>buf</code> - block buffer</dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="updateSizeMetrics(org.apache.hadoop.hbase.io.hfile.LruCachedBlock,boolean)"> |
| <h3>updateSizeMetrics</h3> |
| <div class="member-signature"><span class="modifiers">private</span> <span class="return-type">long</span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-487">updateSizeMetrics</a></span><wbr><span class="parameters">(<a href="LruCachedBlock.html" title="class in org.apache.hadoop.hbase.io.hfile">LruCachedBlock</a> cb, |
| boolean evict)</span></div> |
| <div class="block">Helper function that updates the local size counter and also updates any per-cf or |
| per-blocktype metrics it can discern from given <a href="LruCachedBlock.html" title="class in org.apache.hadoop.hbase.io.hfile"><code>LruCachedBlock</code></a></div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="getBlock(org.apache.hadoop.hbase.io.hfile.BlockCacheKey,boolean,boolean,boolean)"> |
| <h3>getBlock</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type"><a href="Cacheable.html" title="interface in org.apache.hadoop.hbase.io.hfile">Cacheable</a></span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-514">getBlock</a></span><wbr><span class="parameters">(<a href="BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a> cacheKey, |
| boolean caching, |
| boolean repeat, |
| boolean updateCacheMetrics)</span></div> |
| <div class="block">Get the buffer of the block with the specified name.</div> |
| <dl class="notes"> |
| <dt>Specified by:</dt> |
| <dd><code><a href="BlockCache.html#getBlock(org.apache.hadoop.hbase.io.hfile.BlockCacheKey,boolean,boolean,boolean)">getBlock</a></code> in interface <code><a href="BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a></code></dd> |
| <dt>Parameters:</dt> |
| <dd><code>cacheKey</code> - block's cache key</dd> |
| <dd><code>caching</code> - true if the caller caches blocks on cache misses</dd> |
| <dd><code>repeat</code> - Whether this is a repeat lookup for the same block (used to avoid |
| double counting cache misses when doing double-check locking)</dd> |
| <dd><code>updateCacheMetrics</code> - Whether to update cache metrics or not</dd> |
| <dt>Returns:</dt> |
| <dd>buffer of specified cache key, or null if not in cache</dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="containsBlock(org.apache.hadoop.hbase.io.hfile.BlockCacheKey)"> |
| <h3>containsBlock</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">boolean</span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-557">containsBlock</a></span><wbr><span class="parameters">(<a href="BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a> cacheKey)</span></div> |
| <div class="block">Whether the cache contains block with specified cacheKey</div> |
| <dl class="notes"> |
| <dt>Specified by:</dt> |
| <dd><code><a href="FirstLevelBlockCache.html#containsBlock(org.apache.hadoop.hbase.io.hfile.BlockCacheKey)">containsBlock</a></code> in interface <code><a href="FirstLevelBlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">FirstLevelBlockCache</a></code></dd> |
| <dt>Parameters:</dt> |
| <dd><code>cacheKey</code> - cache key for the block</dd> |
| <dt>Returns:</dt> |
| <dd>true if contains the block</dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="evictBlock(org.apache.hadoop.hbase.io.hfile.BlockCacheKey)"> |
| <h3>evictBlock</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">boolean</span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-562">evictBlock</a></span><wbr><span class="parameters">(<a href="BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a> cacheKey)</span></div> |
| <div class="block"><span class="descfrm-type-label">Description copied from interface: <code><a href="BlockCache.html#evictBlock(org.apache.hadoop.hbase.io.hfile.BlockCacheKey)">BlockCache</a></code></span></div> |
| <div class="block">Evict block from cache.</div> |
| <dl class="notes"> |
| <dt>Specified by:</dt> |
| <dd><code><a href="BlockCache.html#evictBlock(org.apache.hadoop.hbase.io.hfile.BlockCacheKey)">evictBlock</a></code> in interface <code><a href="BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a></code></dd> |
| <dt>Parameters:</dt> |
| <dd><code>cacheKey</code> - Block to evict</dd> |
| <dt>Returns:</dt> |
| <dd>true if block existed and was evicted, false if not</dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="evictBlocksByHfileName(java.lang.String)"> |
| <h3>evictBlocksByHfileName</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">int</span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-576">evictBlocksByHfileName</a></span><wbr><span class="parameters">(<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> hfileName)</span></div> |
| <div class="block">Evicts all blocks for a specific HFile. This is an expensive operation implemented as a |
| linear-time search through all blocks in the cache. Ideally this should be a search in a |
| log-access-time map. |
| <p> |
| This is used for evict-on-close to remove all blocks of a specific HFile.</div> |
| <dl class="notes"> |
| <dt>Specified by:</dt> |
| <dd><code><a href="BlockCache.html#evictBlocksByHfileName(java.lang.String)">evictBlocksByHfileName</a></code> in interface <code><a href="BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a></code></dd> |
| <dt>Returns:</dt> |
| <dd>the number of blocks evicted</dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="evictBlock(org.apache.hadoop.hbase.io.hfile.LruCachedBlock,boolean)"> |
| <h3>evictBlock</h3> |
| <div class="member-signature"><span class="modifiers">protected</span> <span class="return-type">long</span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-598">evictBlock</a></span><wbr><span class="parameters">(<a href="LruCachedBlock.html" title="class in org.apache.hadoop.hbase.io.hfile">LruCachedBlock</a> block, |
| boolean evictedByEvictionProcess)</span></div> |
| <div class="block">Evict the block, and it will be cached by the victim handler if exists && block may be |
| read again later</div> |
| <dl class="notes"> |
| <dt>Parameters:</dt> |
| <dd><code>evictedByEvictionProcess</code> - true if the given block is evicted by EvictionThread</dd> |
| <dt>Returns:</dt> |
| <dd>the heap size of evicted block</dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="runEviction()"> |
| <h3>runEviction</h3> |
| <div class="member-signature"><span class="modifiers">private</span> <span class="return-type">void</span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-645">runEviction</a></span>()</div> |
| <div class="block">Multi-threaded call to run the eviction process.</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="isEvictionInProgress()"> |
| <h3>isEvictionInProgress</h3> |
| <div class="member-signature"><span class="return-type">boolean</span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-653">isEvictionInProgress</a></span>()</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="getOverhead()"> |
| <h3>getOverhead</h3> |
| <div class="member-signature"><span class="return-type">long</span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-657">getOverhead</a></span>()</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="evict()"> |
| <h3>evict</h3> |
| <div class="member-signature"><span class="return-type">void</span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-664">evict</a></span>()</div> |
| <div class="block">Eviction method.</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="toString()"> |
| <h3>toString</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <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> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-784">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> in class <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="getMaxSize()"> |
| <h3>getMaxSize</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">long</span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-878">getMaxSize</a></span>()</div> |
| <div class="block">Get the maximum size of this cache.</div> |
| <dl class="notes"> |
| <dt>Specified by:</dt> |
| <dd><code><a href="BlockCache.html#getMaxSize()">getMaxSize</a></code> in interface <code><a href="BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a></code></dd> |
| <dt>Returns:</dt> |
| <dd>max size in bytes</dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="getCurrentSize()"> |
| <h3>getCurrentSize</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">long</span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-883">getCurrentSize</a></span>()</div> |
| <div class="block"><span class="descfrm-type-label">Description copied from interface: <code><a href="BlockCache.html#getCurrentSize()">BlockCache</a></code></span></div> |
| <div class="block">Returns the occupied size of the block cache, in bytes.</div> |
| <dl class="notes"> |
| <dt>Specified by:</dt> |
| <dd><code><a href="BlockCache.html#getCurrentSize()">getCurrentSize</a></code> in interface <code><a href="BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a></code></dd> |
| <dt>Returns:</dt> |
| <dd>occupied space in cache, in bytes</dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="getCurrentDataSize()"> |
| <h3>getCurrentDataSize</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">long</span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-888">getCurrentDataSize</a></span>()</div> |
| <div class="block"><span class="descfrm-type-label">Description copied from interface: <code><a href="BlockCache.html#getCurrentDataSize()">BlockCache</a></code></span></div> |
| <div class="block">Returns the occupied size of data blocks, in bytes.</div> |
| <dl class="notes"> |
| <dt>Specified by:</dt> |
| <dd><code><a href="BlockCache.html#getCurrentDataSize()">getCurrentDataSize</a></code> in interface <code><a href="BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a></code></dd> |
| <dt>Returns:</dt> |
| <dd>occupied space in cache, in bytes</dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="getCurrentIndexSize()"> |
| <h3>getCurrentIndexSize</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">long</span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-893">getCurrentIndexSize</a></span>()</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="getCurrentBloomSize()"> |
| <h3>getCurrentBloomSize</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">long</span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-897">getCurrentBloomSize</a></span>()</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="getFreeSize()"> |
| <h3>getFreeSize</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">long</span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-901">getFreeSize</a></span>()</div> |
| <div class="block"><span class="descfrm-type-label">Description copied from interface: <code><a href="BlockCache.html#getFreeSize()">BlockCache</a></code></span></div> |
| <div class="block">Returns the free size of the block cache, in bytes.</div> |
| <dl class="notes"> |
| <dt>Specified by:</dt> |
| <dd><code><a href="BlockCache.html#getFreeSize()">getFreeSize</a></code> in interface <code><a href="BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a></code></dd> |
| <dt>Returns:</dt> |
| <dd>free space in cache, in bytes</dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="size()"> |
| <h3>size</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">long</span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-906">size</a></span>()</div> |
| <div class="block"><span class="descfrm-type-label">Description copied from interface: <code><a href="BlockCache.html#size()">BlockCache</a></code></span></div> |
| <div class="block">Returns the total size of the block cache, in bytes.</div> |
| <dl class="notes"> |
| <dt>Specified by:</dt> |
| <dd><code><a href="BlockCache.html#size()">size</a></code> in interface <code><a href="BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a></code></dd> |
| <dt>Returns:</dt> |
| <dd>size of cache, in bytes</dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="getBlockCount()"> |
| <h3>getBlockCount</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">long</span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-911">getBlockCount</a></span>()</div> |
| <div class="block"><span class="descfrm-type-label">Description copied from interface: <code><a href="BlockCache.html#getBlockCount()">BlockCache</a></code></span></div> |
| <div class="block">Returns the number of blocks currently cached in the block cache.</div> |
| <dl class="notes"> |
| <dt>Specified by:</dt> |
| <dd><code><a href="BlockCache.html#getBlockCount()">getBlockCount</a></code> in interface <code><a href="BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a></code></dd> |
| <dt>Returns:</dt> |
| <dd>number of blocks in the cache</dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="getDataBlockCount()"> |
| <h3>getDataBlockCount</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">long</span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-916">getDataBlockCount</a></span>()</div> |
| <div class="block"><span class="descfrm-type-label">Description copied from interface: <code><a href="BlockCache.html#getDataBlockCount()">BlockCache</a></code></span></div> |
| <div class="block">Returns the number of data blocks currently cached in the block cache.</div> |
| <dl class="notes"> |
| <dt>Specified by:</dt> |
| <dd><code><a href="BlockCache.html#getDataBlockCount()">getDataBlockCount</a></code> in interface <code><a href="BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a></code></dd> |
| <dt>Returns:</dt> |
| <dd>number of blocks in the cache</dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="getIndexBlockCount()"> |
| <h3>getIndexBlockCount</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">long</span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-921">getIndexBlockCount</a></span>()</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="getBloomBlockCount()"> |
| <h3>getBloomBlockCount</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">long</span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-925">getBloomBlockCount</a></span>()</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="getEvictionThread()"> |
| <h3>getEvictionThread</h3> |
| <div class="member-signature"><span class="return-type"><a href="LruBlockCache.EvictionThread.html" title="class in org.apache.hadoop.hbase.io.hfile">LruBlockCache.EvictionThread</a></span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-929">getEvictionThread</a></span>()</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="logStats()"> |
| <h3>logStats</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">void</span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-1016">logStats</a></span>()</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="getStats()"> |
| <h3>getStats</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type"><a href="CacheStats.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheStats</a></span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-1042">getStats</a></span>()</div> |
| <div class="block">Get counter statistics for this cache. |
| <p> |
| Includes: total accesses, hits, misses, evicted blocks, and runs of the eviction processes.</div> |
| <dl class="notes"> |
| <dt>Specified by:</dt> |
| <dd><code><a href="BlockCache.html#getStats()">getStats</a></code> in interface <code><a href="BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a></code></dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="heapSize()"> |
| <h3>heapSize</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">long</span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-1050">heapSize</a></span>()</div> |
| <div class="block"><span class="descfrm-type-label">Description copied from interface: <code><a href="../HeapSize.html#heapSize()">HeapSize</a></code></span></div> |
| <div class="block">Return the approximate 'exclusive deep size' of implementing object. Includes count of payload |
| and hosting object sizings.</div> |
| <dl class="notes"> |
| <dt>Specified by:</dt> |
| <dd><code><a href="../HeapSize.html#heapSize()">heapSize</a></code> in interface <code><a href="../HeapSize.html" title="interface in org.apache.hadoop.hbase.io">HeapSize</a></code></dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="calculateOverhead(long,long,int)"> |
| <h3>calculateOverhead</h3> |
| <div class="member-signature"><span class="modifiers">private static</span> <span class="return-type">long</span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-1055">calculateOverhead</a></span><wbr><span class="parameters">(long maxSize, |
| long blockSize, |
| int concurrency)</span></div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="iterator()"> |
| <h3>iterator</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <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><<a href="CachedBlock.html" title="interface in org.apache.hadoop.hbase.io.hfile">CachedBlock</a>></span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-1062">iterator</a></span>()</div> |
| <div class="block"><span class="descfrm-type-label">Description copied from interface: <code><a href="BlockCache.html#iterator()">BlockCache</a></code></span></div> |
| <div class="block">Returns Iterator over the blocks in the cache.</div> |
| <dl class="notes"> |
| <dt>Specified by:</dt> |
| <dd><code><a href="BlockCache.html#iterator()">iterator</a></code> in interface <code><a href="BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a></code></dd> |
| <dt>Specified by:</dt> |
| <dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Iterable.html#iterator()" title="class or interface in java.lang" class="external-link">iterator</a></code> in interface <code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Iterable.html" title="class or interface in java.lang" class="external-link">Iterable</a><<a href="CachedBlock.html" title="interface in org.apache.hadoop.hbase.io.hfile">CachedBlock</a>></code></dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="acceptableSize()"> |
| <h3>acceptableSize</h3> |
| <div class="member-signature"><span class="return-type">long</span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-1155">acceptableSize</a></span>()</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="minSize()"> |
| <h3>minSize</h3> |
| <div class="member-signature"><span class="modifiers">private</span> <span class="return-type">long</span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-1159">minSize</a></span>()</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="singleSize()"> |
| <h3>singleSize</h3> |
| <div class="member-signature"><span class="modifiers">private</span> <span class="return-type">long</span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-1163">singleSize</a></span>()</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="multiSize()"> |
| <h3>multiSize</h3> |
| <div class="member-signature"><span class="modifiers">private</span> <span class="return-type">long</span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-1167">multiSize</a></span>()</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="memorySize()"> |
| <h3>memorySize</h3> |
| <div class="member-signature"><span class="modifiers">private</span> <span class="return-type">long</span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-1171">memorySize</a></span>()</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="shutdown()"> |
| <h3>shutdown</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">void</span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-1175">shutdown</a></span>()</div> |
| <div class="block"><span class="descfrm-type-label">Description copied from interface: <code><a href="BlockCache.html#shutdown()">BlockCache</a></code></span></div> |
| <div class="block">Shutdown the cache.</div> |
| <dl class="notes"> |
| <dt>Specified by:</dt> |
| <dd><code><a href="BlockCache.html#shutdown()">shutdown</a></code> in interface <code><a href="BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a></code></dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="clearCache()"> |
| <h3>clearCache</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type">void</span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-1201">clearCache</a></span>()</div> |
| <div class="block">Clears the cache. Used in tests.</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="getCachedFileNamesForTest()"> |
| <h3>getCachedFileNamesForTest</h3> |
| <div class="member-signature"><span class="return-type"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/SortedSet.html" title="class or interface in java.util" class="external-link">SortedSet</a><<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> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-1210">getCachedFileNamesForTest</a></span>()</div> |
| <div class="block">Used in testing. May be very inefficient.</div> |
| <dl class="notes"> |
| <dt>Returns:</dt> |
| <dd>the set of cached file names</dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="getEncodingCountsForTest()"> |
| <h3>getEncodingCountsForTest</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Map.html" title="class or interface in java.util" class="external-link">Map</a><<a href="../encoding/DataBlockEncoding.html" title="enum class in org.apache.hadoop.hbase.io.encoding">DataBlockEncoding</a>,<wbr><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Integer.html" title="class or interface in java.lang" class="external-link">Integer</a>></span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-1218">getEncodingCountsForTest</a></span>()</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="getMapForTests()"> |
| <h3>getMapForTests</h3> |
| <div class="member-signature"><span class="return-type"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Map.html" title="class or interface in java.util" class="external-link">Map</a><<a href="BlockCacheKey.html" title="class in org.apache.hadoop.hbase.io.hfile">BlockCacheKey</a>,<wbr><a href="LruCachedBlock.html" title="class in org.apache.hadoop.hbase.io.hfile">LruCachedBlock</a>></span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-1228">getMapForTests</a></span>()</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="getBlockCaches()"> |
| <h3>getBlockCaches</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="return-type"><a href="BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>[]</span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruBlockCache.html#line-1232">getBlockCaches</a></span>()</div> |
| <div class="block"><span class="descfrm-type-label">Description copied from interface: <code><a href="BlockCache.html#getBlockCaches()">BlockCache</a></code></span></div> |
| <div class="block">Returns The list of sub blockcaches that make up this one; returns null if no sub caches.</div> |
| <dl class="notes"> |
| <dt>Specified by:</dt> |
| <dd><code><a href="BlockCache.html#getBlockCaches()">getBlockCaches</a></code> in interface <code><a href="BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a></code></dd> |
| </dl> |
| </section> |
| </li> |
| </ul> |
| </section> |
| </li> |
| </ul> |
| </section> |
| <!-- ========= END OF CLASS DATA ========= --> |
| </main> |
| <footer role="contentinfo"> |
| <hr> |
| <p class="legal-copy"><small>Copyright © 2007–2020 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p> |
| </footer> |
| </div> |
| </div> |
| </body> |
| </html> |