You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Wellington Chevreuil (Jira)" <ji...@apache.org> on 2022/12/19 12:16:00 UTC
[jira] [Resolved] (HBASE-27474) Evict blocks on split/merge; Avoid caching reference/hlinks if compaction is enabled
[ https://issues.apache.org/jira/browse/HBASE-27474?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Wellington Chevreuil resolved HBASE-27474.
------------------------------------------
Release Note:
This modifies behaviour of block cache management as follows:
1) Always evict blocks for the files from parent split region once it's closed, regardless of the "hbase.rs.evictblocksonclose" configured value;
2) If compactions are enabled, doesn't cache blocks for the refs/link files under split daughters once these regions are opened;
For #1 above, an additional evict_cache property has been added to the CloseRegionRequest protobuf message. It's default to false. Rolling upgrading cluster would retain the previous behaviour on RSes not yet upgraded.
Resolution: Fixed
Thanks for the review [~psomogyi] ! Had merged into master and branch-2.
> Evict blocks on split/merge; Avoid caching reference/hlinks if compaction is enabled
> ------------------------------------------------------------------------------------
>
> Key: HBASE-27474
> URL: https://issues.apache.org/jira/browse/HBASE-27474
> Project: HBase
> Issue Type: Improvement
> Affects Versions: 3.0.0-alpha-3
> Reporter: Wellington Chevreuil
> Assignee: Wellington Chevreuil
> Priority: Major
> Fix For: 2.6.0, 3.0.0-alpha-4
>
>
> This change aims to improve block cache usage upon splits/merges. On a split/merge event the following main steps happen:
> 1) parent regions are closed; 2) daughters are created and opened with refs/hlinks; 3) Compaction is triggered soon after the daughters get online;
> With "hbase.rs.evictblocksonclose" set to false, we keep all blocks for the closed regions in 1, then will try to load same blocks again on 2 (since we are using the refs/links for the cache key), just to throw it away and cache the compaction resulting file in 3.
> If the block cache is close to its capacity, blocks from the compacted files in 3 will likely miss the cache.
> The proposal here is to always evict blocks for parent regions on a split/merge event, and also avoid caching blocks for refs/hlinks if compactions are enabled.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)