[
https://issues.apache.org/jira/browse/HBASE-30024?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Vladimir Rodionov updated HBASE-30024:
--------------------------------------
Description:
h2. Description
Refactor *CombinedBlockCache* by extracting its tier orchestration logic into
an explicit *TieredExclusiveTopology* abstraction.
CombinedBlockCache currently combines multiple responsibilities, including:
* coordination between L1 (*LruBlockCache*) and L2 (*BucketCache*)
* routing of block lookups across tiers
* promotion of blocks from L2 to L1 on cache hit
* aggregation of cache metrics
This change separates these concerns by introducing *TieredExclusiveTopology*
as a dedicated orchestration layer.
h3. Scope
* Introduce *TieredExclusiveTopology* implementing L1/L2 coordination
* Move logic from CombinedBlockCache into the topology layer, including:
** lookup routing across tiers
** promotion/demotion behavior
** invalidation propagation
** metrics aggregation
* Adapt CombinedBlockCache to:
** delegate to TieredExclusiveTopology, or
** act as a temporary compatibility wrapper
h3. Notes
* No behavior change intended — *TieredExclusiveTopology* should preserve
current CombinedBlockCache semantics
* Existing cache implementations (*LruBlockCache*, *BucketCache*) remain
unchanged
* This is a key step toward separating:
** topology (*CacheTopology*)
** storage (*CacheEngine*)
** policy (*CachePlacementPolicy*)
* Lays groundwork for future support of alternative topologies (e.g., inclusive
mode)
was:
Description
Refactor CombinedBlockCache by extracting its tier orchestration logic into an
explicit TieredExclusiveTopology abstraction.
CombinedBlockCache currently combines multiple responsibilities, including:
• coordination between L1 (LruBlockCache) and L2 (BucketCache)
• routing of block lookups across tiers
• promotion of blocks from L2 to L1 on cache hit
• aggregation of cache metrics
This change separates these concerns by introducing TieredExclusiveTopology as
a dedicated orchestration layer.
Scope
• Introduce TieredExclusiveTopology implementing L1/L2
coordination
• Move logic from CombinedBlockCache into the topology layer,
including:
• lookup routing across tiers
• promotion/demotion behavior
• invalidation propagation
• metrics aggregation
• Adapt CombinedBlockCache to:
• delegate to TieredExclusiveTopology, or
• act as a temporary compatibility wrapper
Notes
• No behavior change intended — TieredExclusiveTopology should
preserve current CombinedBlockCache semantics
• Existing cache implementations (LruBlockCache, BucketCache)
remain unchanged
• This is a key step toward separating topology from storage
(CacheEngine) and policy
• Lays groundwork for future support of alternative topologies
(e.g., inclusive mode)
> Refactor CombinedBlockCache into explicit TieredExclusiveTopology
> -----------------------------------------------------------------
>
> Key: HBASE-30024
> URL: https://issues.apache.org/jira/browse/HBASE-30024
> Project: HBase
> Issue Type: New Feature
> Reporter: Vladimir Rodionov
> Assignee: Vladimir Rodionov
> Priority: Major
>
> h2. Description
> Refactor *CombinedBlockCache* by extracting its tier orchestration logic into
> an explicit *TieredExclusiveTopology* abstraction.
> CombinedBlockCache currently combines multiple responsibilities, including:
> * coordination between L1 (*LruBlockCache*) and L2 (*BucketCache*)
> * routing of block lookups across tiers
> * promotion of blocks from L2 to L1 on cache hit
> * aggregation of cache metrics
> This change separates these concerns by introducing *TieredExclusiveTopology*
> as a dedicated orchestration layer.
> h3. Scope
> * Introduce *TieredExclusiveTopology* implementing L1/L2 coordination
> * Move logic from CombinedBlockCache into the topology layer, including:
> ** lookup routing across tiers
> ** promotion/demotion behavior
> ** invalidation propagation
> ** metrics aggregation
> * Adapt CombinedBlockCache to:
> ** delegate to TieredExclusiveTopology, or
> ** act as a temporary compatibility wrapper
> h3. Notes
> * No behavior change intended — *TieredExclusiveTopology* should preserve
> current CombinedBlockCache semantics
> * Existing cache implementations (*LruBlockCache*, *BucketCache*) remain
> unchanged
> * This is a key step toward separating:
> ** topology (*CacheTopology*)
> ** storage (*CacheEngine*)
> ** policy (*CachePlacementPolicy*)
> * Lays groundwork for future support of alternative topologies (e.g.,
> inclusive mode)
--
This message was sent by Atlassian Jira
(v8.20.10#820010)