[ 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)