Details
-
Improvement
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
3.0.0-alpha-3
-
None
-
None
Description
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.
Attachments
Issue Links
- links to