[
https://issues.apache.org/jira/browse/HBASE-29288?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Wellington Chevreuil resolved HBASE-29288.
------------------------------------------
Resolution: Fixed
Merged to master, branch-3 and branch-2. Thanks for the reviews, [~taklwu] and
[~psomogyi] !
> Avoid adding new blocks during prefetch if usage is greater than accept factor
> ------------------------------------------------------------------------------
>
> Key: HBASE-29288
> URL: https://issues.apache.org/jira/browse/HBASE-29288
> Project: HBase
> Issue Type: Improvement
> Affects Versions: 3.0.0-beta-1, 4.0.0-alpha-1, 2.7.0, 2.6.2
> Reporter: Wellington Chevreuil
> Assignee: Wellington Chevreuil
> Priority: Major
> Labels: pull-request-available
> Fix For: 3.0.0, 4.0.0-alpha-1, 2.7.0
>
>
> If cache prefetch is enabled, if cache usage reaches the configured accept
> factor, we'll enter a cycle of frequent blocks mass evictions until the
> prefetch completes. This is quite costly and inefficient.
> A first attempt to avoid this was proposed in HBASE-28176. However, this
> solution only interrupts the prefetch thread once we had already attempted to
> cache the current block being read, which may already trigger a mass
> eviction.
> To completely avoid evictions being triggered solely by the prefetch, we
> should check the impact of adding the current block to the cache before we
> actual write it, and avoid the mass evictions. This check should be done only
> when caching from prefetch threads, normal client reads and hfile writes
> should still cache blocks, regardless.
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)