| <!DOCTYPE HTML> |
| <html lang="en"> |
| <head> |
| <!-- Generated by javadoc (17) --> |
| <title>LruAdaptiveBlockCache (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: LruAdaptiveBlockCache"> |
| <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/LruAdaptiveBlockCache.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 LruAdaptiveBlockCache" class="title">Class LruAdaptiveBlockCache</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.LruAdaptiveBlockCache</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> |
| <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/LruAdaptiveBlockCache.html#line-138">LruAdaptiveBlockCache</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"><b>This realisation improve performance of classical LRU cache up to 3 times via reduce GC |
| job.</b> |
| </p> |
| The classical 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. |
| <p/> |
| Adaptive LRU cache lets speed up performance while we are reading much more data than can fit |
| into BlockCache and it is the cause of a high rate of evictions. This in turn leads to heavy |
| Garbage Collector works. So a lot of blocks put into BlockCache but never read, but spending a |
| lot of CPU resources for cleaning. We could avoid this situation via parameters: |
| <p/> |
| <b>hbase.lru.cache.heavy.eviction.count.limit</b> - set how many times we have to run the |
| eviction process that starts to avoid putting data to BlockCache. By default it is 0 and it meats |
| the feature will start at the beginning. But if we have some times short reading the same data |
| and some times long-term reading - we can divide it by this parameter. For example we know that |
| our short reading used to be about 1 minutes, then we have to set the parameter about 10 and it |
| will enable the feature only for long time massive reading (after ~100 seconds). So when we use |
| short-reading and want all of them in the cache we will have it (except for eviction of course). |
| When we use long-term heavy reading the feature will be enabled after some time and bring better |
| performance. |
| <p/> |
| <b>hbase.lru.cache.heavy.eviction.mb.size.limit</b> - set how many bytes in 10 seconds desirable |
| putting into BlockCache (and evicted from it). The feature will try to reach this value and |
| maintain it. Don't try to set it too small because it leads to premature exit from this mode. For |
| powerful CPUs (about 20-40 physical cores) it could be about 400-500 MB. Average system (~10 |
| cores) 200-300 MB. Some weak systems (2-5 cores) may be good with 50-100 MB. How it works: we set |
| the limit and after each ~10 second calculate how many bytes were freed. Overhead = Freed Bytes |
| Sum (MB) * 100 / Limit (MB) - 100; For example we set the limit = 500 and were evicted 2000 MB. |
| Overhead is: 2000 * 100 / 500 - 100 = 300% The feature is going to reduce a percent caching data |
| blocks and fit evicted bytes closer to 100% (500 MB). Some kind of an auto-scaling. If freed |
| bytes less then the limit we have got negative overhead. For example if were freed 200 MB: 200 * |
| 100 / 500 - 100 = -60% The feature will increase the percent of caching blocks. That leads to fit |
| evicted bytes closer to 100% (500 MB). The current situation we can find out in the log of |
| RegionServer: BlockCache evicted (MB): 0, overhead (%): -100, heavy eviction counter: 0, current |
| caching DataBlock (%): 100 - means no eviction, 100% blocks is caching BlockCache evicted (MB): |
| 2000, overhead (%): 300, heavy eviction counter: 1, current caching DataBlock (%): 97 - means |
| eviction begin, reduce of caching blocks by 3%. It help to tune your system and find out what |
| value is better set. Don't try to reach 0% overhead, it is impossible. Quite good 50-100% |
| overhead, it prevents premature exit from this mode. |
| <p/> |
| <b>hbase.lru.cache.heavy.eviction.overhead.coefficient</b> - set how fast we want to get the |
| result. If we know that our reading is heavy for a long time, we don't want to wait and can |
| increase the coefficient and get good performance sooner. But if we aren't sure we can do it |
| slowly and it could prevent premature exit from this mode. So, when the coefficient is higher we |
| can get better performance when heavy reading is stable. But when reading is changing we can |
| adjust to it and set the coefficient to lower value. For example, we set the coefficient = 0.01. |
| It means the overhead (see above) will be multiplied by 0.01 and the result is the value of |
| reducing percent caching blocks. For example, if the overhead = 300% and the coefficient = 0.01, |
| then percent of caching blocks will reduce by 3%. Similar logic when overhead has got negative |
| value (overshooting). Maybe it is just short-term fluctuation and we will try to stay in this |
| mode. It helps avoid premature exit during short-term fluctuation. Backpressure has simple logic: |
| more overshooting - more caching blocks. |
| <p/> |
| Find more information about improvement: https://issues.apache.org/jira/browse/HBASE-23887</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="LruAdaptiveBlockCache.BlockBucket.html" class="type-name-link" title="class in org.apache.hadoop.hbase.io.hfile">LruAdaptiveBlockCache.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="LruAdaptiveBlockCache.EvictionThread.html" class="type-name-link" title="class in org.apache.hadoop.hbase.io.hfile">LruAdaptiveBlockCache.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="LruAdaptiveBlockCache.StatisticsThread.html" class="type-name-link" title="class in org.apache.hadoop.hbase.io.hfile">LruAdaptiveBlockCache.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 final 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 final 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>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 int</code></div> |
| <div class="col-second odd-row-color"><code><a href="#cacheDataBlockPercent" class="member-name-link">cacheDataBlockPercent</a></code></div> |
| <div class="col-last odd-row-color"> |
| <div class="block">Percent of cached data blocks</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="#count" class="member-name-link">count</a></code></div> |
| <div class="col-last even-row-color"> |
| <div class="block">Cache access count (sequential ID)</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="#dataBlockElements" class="member-name-link">dataBlockElements</a></code></div> |
| <div class="col-last odd-row-color"> |
| <div class="block">Current number of cached data block elements</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="#dataBlockSize" class="member-name-link">dataBlockSize</a></code></div> |
| <div class="col-last even-row-color"> |
| <div class="block">Current size of data blocks</div> |
| </div> |
| <div class="col-first odd-row-color"><code>(package private) static final float</code></div> |
| <div class="col-second odd-row-color"><code><a href="#DEFAULT_ACCEPTABLE_FACTOR" class="member-name-link">DEFAULT_ACCEPTABLE_FACTOR</a></code></div> |
| <div class="col-last odd-row-color"> </div> |
| <div class="col-first even-row-color"><code>(package private) static final int</code></div> |
| <div class="col-second even-row-color"><code><a href="#DEFAULT_CONCURRENCY_LEVEL" class="member-name-link">DEFAULT_CONCURRENCY_LEVEL</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_HARD_CAPACITY_LIMIT_FACTOR" class="member-name-link">DEFAULT_HARD_CAPACITY_LIMIT_FACTOR</a></code></div> |
| <div class="col-last odd-row-color"> </div> |
| <div class="col-first even-row-color"><code>private static final boolean</code></div> |
| <div class="col-second even-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 even-row-color"> </div> |
| <div class="col-first odd-row-color"><code>(package private) static final float</code></div> |
| <div class="col-second odd-row-color"><code><a href="#DEFAULT_LOAD_FACTOR" class="member-name-link">DEFAULT_LOAD_FACTOR</a></code></div> |
| <div class="col-last odd-row-color"> </div> |
| <div class="col-first even-row-color"><code>private static final int</code></div> |
| <div class="col-second even-row-color"><code><a href="#DEFAULT_LRU_CACHE_HEAVY_EVICTION_COUNT_LIMIT" class="member-name-link">DEFAULT_LRU_CACHE_HEAVY_EVICTION_COUNT_LIMIT</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_LRU_CACHE_HEAVY_EVICTION_MB_SIZE_LIMIT" class="member-name-link">DEFAULT_LRU_CACHE_HEAVY_EVICTION_MB_SIZE_LIMIT</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_LRU_CACHE_HEAVY_EVICTION_OVERHEAD_COEFFICIENT" class="member-name-link">DEFAULT_LRU_CACHE_HEAVY_EVICTION_OVERHEAD_COEFFICIENT</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="LruAdaptiveBlockCache.EvictionThread.html" title="class in org.apache.hadoop.hbase.io.hfile">LruAdaptiveBlockCache.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 final 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 int</code></div> |
| <div class="col-second even-row-color"><code><a href="#heavyEvictionCountLimit" class="member-name-link">heavyEvictionCountLimit</a></code></div> |
| <div class="col-last even-row-color"> |
| <div class="block">Limit of count eviction process when start to avoid to cache blocks</div> |
| </div> |
| <div class="col-first odd-row-color"><code>private final long</code></div> |
| <div class="col-second odd-row-color"><code><a href="#heavyEvictionMbSizeLimit" class="member-name-link">heavyEvictionMbSizeLimit</a></code></div> |
| <div class="col-last odd-row-color"> |
| <div class="block">Limit of volume eviction process when start to avoid to cache blocks</div> |
| </div> |
| <div class="col-first even-row-color"><code>private final float</code></div> |
| <div class="col-second even-row-color"><code><a href="#heavyEvictionOverheadCoefficient" class="member-name-link">heavyEvictionOverheadCoefficient</a></code></div> |
| <div class="col-last even-row-color"> |
| <div class="block">Adjust auto-scaling via overhead of evition rate</div> |
| </div> |
| <div class="col-first odd-row-color"><code>private static final org.slf4j.Logger</code></div> |
| <div class="col-second odd-row-color"><code><a href="#LOG" class="member-name-link">LOG</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_ACCEPTABLE_FACTOR_CONFIG_NAME" class="member-name-link">LRU_ACCEPTABLE_FACTOR_CONFIG_NAME</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 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_CACHE_HEAVY_EVICTION_COUNT_LIMIT" class="member-name-link">LRU_CACHE_HEAVY_EVICTION_COUNT_LIMIT</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_CACHE_HEAVY_EVICTION_MB_SIZE_LIMIT" class="member-name-link">LRU_CACHE_HEAVY_EVICTION_MB_SIZE_LIMIT</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_CACHE_HEAVY_EVICTION_OVERHEAD_COEFFICIENT" class="member-name-link">LRU_CACHE_HEAVY_EVICTION_OVERHEAD_COEFFICIENT</a></code></div> |
| <div class="col-last odd-row-color"> </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#computeIfPresent (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 final 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 final 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 final 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 final 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 final 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">LruAdaptiveBlockCache</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">LruAdaptiveBlockCache</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,int,long,float)" class="member-name-link">LruAdaptiveBlockCache</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, |
| int heavyEvictionCountLimit, |
| long heavyEvictionMbSizeLimit, |
| float heavyEvictionOverheadCoefficient)</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">LruAdaptiveBlockCache</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">LruAdaptiveBlockCache</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 LruAdaptiveBlockCache 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) long</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>int</code></div> |
| <div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getCacheDataBlockPercent()" class="member-name-link">getCacheDataBlockPercent</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="#getCurrentSize()" class="member-name-link">getCurrentSize</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 occupied size of the block cache, in bytes.</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="#getDataBlockCount()" class="member-name-link">getDataBlockCount</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 data 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><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 odd-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 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="LruAdaptiveBlockCache.EvictionThread.html" title="class in org.apache.hadoop.hbase.io.hfile">LruAdaptiveBlockCache.EvictionThread</a></code></div> |
| <div class="col-second even-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 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="#getFreeSize()" class="member-name-link">getFreeSize</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 free size of the block cache, in bytes.</div> |
| </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/LruAdaptiveBlockCache.html#line-141">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/LruAdaptiveBlockCache.html#line-147">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.LruAdaptiveBlockCache.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/LruAdaptiveBlockCache.html#line-152">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.LruAdaptiveBlockCache.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/LruAdaptiveBlockCache.html#line-158">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.LruAdaptiveBlockCache.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/LruAdaptiveBlockCache.html#line-160">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.LruAdaptiveBlockCache.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/LruAdaptiveBlockCache.html#line-162">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.LruAdaptiveBlockCache.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/LruAdaptiveBlockCache.html#line-164">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.LruAdaptiveBlockCache.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/LruAdaptiveBlockCache.html#line-172">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.LruAdaptiveBlockCache.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/LruAdaptiveBlockCache.html#line-178">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.LruAdaptiveBlockCache.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/LruAdaptiveBlockCache.html#line-179">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.LruAdaptiveBlockCache.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/LruAdaptiveBlockCache.html#line-182">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.LruAdaptiveBlockCache.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/LruAdaptiveBlockCache.html#line-183">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.LruAdaptiveBlockCache.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/LruAdaptiveBlockCache.html#line-186">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.LruAdaptiveBlockCache.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/LruAdaptiveBlockCache.html#line-187">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.LruAdaptiveBlockCache.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/LruAdaptiveBlockCache.html#line-188">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.LruAdaptiveBlockCache.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/LruAdaptiveBlockCache.html#line-190">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.LruAdaptiveBlockCache.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/LruAdaptiveBlockCache.html#line-192">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.LruAdaptiveBlockCache.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/LruAdaptiveBlockCache.html#line-195">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.LruAdaptiveBlockCache.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/LruAdaptiveBlockCache.html#line-196">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.LruAdaptiveBlockCache.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/LruAdaptiveBlockCache.html#line-197">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.LruAdaptiveBlockCache.DEFAULT_MAX_BLOCK_SIZE">Constant Field Values</a></li> |
| </ul> |
| </dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="LRU_CACHE_HEAVY_EVICTION_COUNT_LIMIT"> |
| <h3>LRU_CACHE_HEAVY_EVICTION_COUNT_LIMIT</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/LruAdaptiveBlockCache.html#line-199">LRU_CACHE_HEAVY_EVICTION_COUNT_LIMIT</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.LruAdaptiveBlockCache.LRU_CACHE_HEAVY_EVICTION_COUNT_LIMIT">Constant Field Values</a></li> |
| </ul> |
| </dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="DEFAULT_LRU_CACHE_HEAVY_EVICTION_COUNT_LIMIT"> |
| <h3>DEFAULT_LRU_CACHE_HEAVY_EVICTION_COUNT_LIMIT</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/LruAdaptiveBlockCache.html#line-205">DEFAULT_LRU_CACHE_HEAVY_EVICTION_COUNT_LIMIT</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.LruAdaptiveBlockCache.DEFAULT_LRU_CACHE_HEAVY_EVICTION_COUNT_LIMIT">Constant Field Values</a></li> |
| </ul> |
| </dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="LRU_CACHE_HEAVY_EVICTION_MB_SIZE_LIMIT"> |
| <h3>LRU_CACHE_HEAVY_EVICTION_MB_SIZE_LIMIT</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/LruAdaptiveBlockCache.html#line-207">LRU_CACHE_HEAVY_EVICTION_MB_SIZE_LIMIT</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.LruAdaptiveBlockCache.LRU_CACHE_HEAVY_EVICTION_MB_SIZE_LIMIT">Constant Field Values</a></li> |
| </ul> |
| </dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="DEFAULT_LRU_CACHE_HEAVY_EVICTION_MB_SIZE_LIMIT"> |
| <h3>DEFAULT_LRU_CACHE_HEAVY_EVICTION_MB_SIZE_LIMIT</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/LruAdaptiveBlockCache.html#line-209">DEFAULT_LRU_CACHE_HEAVY_EVICTION_MB_SIZE_LIMIT</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.LruAdaptiveBlockCache.DEFAULT_LRU_CACHE_HEAVY_EVICTION_MB_SIZE_LIMIT">Constant Field Values</a></li> |
| </ul> |
| </dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="LRU_CACHE_HEAVY_EVICTION_OVERHEAD_COEFFICIENT"> |
| <h3>LRU_CACHE_HEAVY_EVICTION_OVERHEAD_COEFFICIENT</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/LruAdaptiveBlockCache.html#line-211">LRU_CACHE_HEAVY_EVICTION_OVERHEAD_COEFFICIENT</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.LruAdaptiveBlockCache.LRU_CACHE_HEAVY_EVICTION_OVERHEAD_COEFFICIENT">Constant Field Values</a></li> |
| </ul> |
| </dd> |
| </dl> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="DEFAULT_LRU_CACHE_HEAVY_EVICTION_OVERHEAD_COEFFICIENT"> |
| <h3>DEFAULT_LRU_CACHE_HEAVY_EVICTION_OVERHEAD_COEFFICIENT</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/LruAdaptiveBlockCache.html#line-213">DEFAULT_LRU_CACHE_HEAVY_EVICTION_OVERHEAD_COEFFICIENT</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.LruAdaptiveBlockCache.DEFAULT_LRU_CACHE_HEAVY_EVICTION_OVERHEAD_COEFFICIENT">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/LruAdaptiveBlockCache.html#line-222">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#computeIfPresent (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.</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/LruAdaptiveBlockCache.html#line-225">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/LruAdaptiveBlockCache.html#line-227">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/LruAdaptiveBlockCache.html#line-230">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="LruAdaptiveBlockCache.EvictionThread.html" title="class in org.apache.hadoop.hbase.io.hfile">LruAdaptiveBlockCache.EvictionThread</a></span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruAdaptiveBlockCache.html#line-233">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/LruAdaptiveBlockCache.html#line-236">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/LruAdaptiveBlockCache.html#line-241">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/LruAdaptiveBlockCache.html#line-244">dataBlockSize</a></span></div> |
| <div class="block">Current size of data 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/LruAdaptiveBlockCache.html#line-247">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/LruAdaptiveBlockCache.html#line-250">dataBlockElements</a></span></div> |
| <div class="block">Current number of cached data 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/LruAdaptiveBlockCache.html#line-253">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 final</span> <span class="return-type">float</span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruAdaptiveBlockCache.html#line-256">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/LruAdaptiveBlockCache.html#line-259">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/LruAdaptiveBlockCache.html#line-262">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 final</span> <span class="return-type">long</span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruAdaptiveBlockCache.html#line-265">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 final</span> <span class="return-type">float</span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruAdaptiveBlockCache.html#line-268">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 final</span> <span class="return-type">float</span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruAdaptiveBlockCache.html#line-271">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 final</span> <span class="return-type">float</span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruAdaptiveBlockCache.html#line-274">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 final</span> <span class="return-type">float</span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruAdaptiveBlockCache.html#line-277">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 final</span> <span class="return-type">float</span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruAdaptiveBlockCache.html#line-280">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 final</span> <span class="return-type">long</span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruAdaptiveBlockCache.html#line-283">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/LruAdaptiveBlockCache.html#line-286">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/LruAdaptiveBlockCache.html#line-292">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="cacheDataBlockPercent"> |
| <h3>cacheDataBlockPercent</h3> |
| <div class="member-signature"><span class="modifiers">private volatile</span> <span class="return-type">int</span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruAdaptiveBlockCache.html#line-295">cacheDataBlockPercent</a></span></div> |
| <div class="block">Percent of cached data blocks</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="heavyEvictionCountLimit"> |
| <h3>heavyEvictionCountLimit</h3> |
| <div class="member-signature"><span class="modifiers">private final</span> <span class="return-type">int</span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruAdaptiveBlockCache.html#line-298">heavyEvictionCountLimit</a></span></div> |
| <div class="block">Limit of count eviction process when start to avoid to cache blocks</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="heavyEvictionMbSizeLimit"> |
| <h3>heavyEvictionMbSizeLimit</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/LruAdaptiveBlockCache.html#line-301">heavyEvictionMbSizeLimit</a></span></div> |
| <div class="block">Limit of volume eviction process when start to avoid to cache blocks</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="heavyEvictionOverheadCoefficient"> |
| <h3>heavyEvictionOverheadCoefficient</h3> |
| <div class="member-signature"><span class="modifiers">private final</span> <span class="return-type">float</span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruAdaptiveBlockCache.html#line-304">heavyEvictionOverheadCoefficient</a></span></div> |
| <div class="block">Adjust auto-scaling via overhead of evition rate</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/LruAdaptiveBlockCache.html#line-1193">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>LruAdaptiveBlockCache</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruAdaptiveBlockCache.html#line-314">LruAdaptiveBlockCache</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>LruAdaptiveBlockCache</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruAdaptiveBlockCache.html#line-321">LruAdaptiveBlockCache</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>LruAdaptiveBlockCache</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruAdaptiveBlockCache.html#line-330">LruAdaptiveBlockCache</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>LruAdaptiveBlockCache</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruAdaptiveBlockCache.html#line-350">LruAdaptiveBlockCache</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,int,long,float)"> |
| <h3>LruAdaptiveBlockCache</h3> |
| <div class="member-signature"><span class="modifiers">public</span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruAdaptiveBlockCache.html#line-375">LruAdaptiveBlockCache</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, |
| int heavyEvictionCountLimit, |
| long heavyEvictionMbSizeLimit, |
| float heavyEvictionOverheadCoefficient)</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> |
| <dd><code>hardLimitFactor</code> - hard capacity limit</dd> |
| <dd><code>forceInMemory</code> - in-memory hfile's data block has higher priority when |
| evicting</dd> |
| <dd><code>maxBlockSize</code> - maximum block size for caching</dd> |
| <dd><code>heavyEvictionCountLimit</code> - when starts AdaptiveLRU algoritm work</dd> |
| <dd><code>heavyEvictionMbSizeLimit</code> - how many bytes desirable putting into BlockCache</dd> |
| <dd><code>heavyEvictionOverheadCoefficient</code> - how aggressive AdaptiveLRU will reduce GC</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/LruAdaptiveBlockCache.html#line-432">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/LruAdaptiveBlockCache.html#line-440">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="getCacheDataBlockPercent()"> |
| <h3>getCacheDataBlockPercent</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/LruAdaptiveBlockCache.html#line-448">getCacheDataBlockPercent</a></span>()</div> |
| </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/LruAdaptiveBlockCache.html#line-467">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 LruAdaptiveBlockCache 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 LruAdaptiveBlockCache size is always |
| calculated based on the total heap size, if caching an off-heap block in LruAdaptiveBlockCache, |
| 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 LruAdaptiveBlockCache 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/LruAdaptiveBlockCache.html#line-490">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/LruAdaptiveBlockCache.html#line-559">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/LruAdaptiveBlockCache.html#line-584">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/LruAdaptiveBlockCache.html#line-593">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/LruAdaptiveBlockCache.html#line-614">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/LruAdaptiveBlockCache.html#line-656">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/LruAdaptiveBlockCache.html#line-661">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/LruAdaptiveBlockCache.html#line-675">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/LruAdaptiveBlockCache.html#line-691">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/LruAdaptiveBlockCache.html#line-723">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/LruAdaptiveBlockCache.html#line-731">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/LruAdaptiveBlockCache.html#line-735">getOverhead</a></span>()</div> |
| </section> |
| </li> |
| <li> |
| <section class="detail" id="evict()"> |
| <h3>evict</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/LruAdaptiveBlockCache.html#line-744">evict</a></span>()</div> |
| <div class="block">Eviction method. Evict items in order of use, allowing delete items which haven't been used for |
| the longest amount of time.</div> |
| <dl class="notes"> |
| <dt>Returns:</dt> |
| <dd>how many bytes were freed</dd> |
| </dl> |
| </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/LruAdaptiveBlockCache.html#line-867">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/LruAdaptiveBlockCache.html#line-961">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/LruAdaptiveBlockCache.html#line-966">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/LruAdaptiveBlockCache.html#line-971">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="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/LruAdaptiveBlockCache.html#line-976">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/LruAdaptiveBlockCache.html#line-981">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/LruAdaptiveBlockCache.html#line-986">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/LruAdaptiveBlockCache.html#line-991">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="getEvictionThread()"> |
| <h3>getEvictionThread</h3> |
| <div class="member-signature"><span class="return-type"><a href="LruAdaptiveBlockCache.EvictionThread.html" title="class in org.apache.hadoop.hbase.io.hfile">LruAdaptiveBlockCache.EvictionThread</a></span> <span class="element-name"><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/LruAdaptiveBlockCache.html#line-996">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/LruAdaptiveBlockCache.html#line-1162">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/LruAdaptiveBlockCache.html#line-1188">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/LruAdaptiveBlockCache.html#line-1196">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/LruAdaptiveBlockCache.html#line-1201">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/LruAdaptiveBlockCache.html#line-1208">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/LruAdaptiveBlockCache.html#line-1301">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/LruAdaptiveBlockCache.html#line-1305">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/LruAdaptiveBlockCache.html#line-1309">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/LruAdaptiveBlockCache.html#line-1313">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/LruAdaptiveBlockCache.html#line-1317">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/LruAdaptiveBlockCache.html#line-1321">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/LruAdaptiveBlockCache.html#line-1347">clearCache</a></span>()</div> |
| <div class="block">Clears the cache. Used in tests.</div> |
| </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/LruAdaptiveBlockCache.html#line-1352">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/LruAdaptiveBlockCache.html#line-1362">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/LruAdaptiveBlockCache.html#line-1366">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> |