[ 
https://issues.apache.org/jira/browse/HBASE-30024?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

ASF GitHub Bot updated HBASE-30024:
-----------------------------------
    Labels: pull-request-available  (was: )

> Add BlockCache-backed CacheEngine adapter for 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
>              Labels: pull-request-available
>
> TieredExclusiveTopology and TopologyBackedCacheAccessService already exist as 
> part of the pluggable block cache architecture. The next migration step is to 
> make the existing topology-backed path usable with current legacy BlockCache 
> implementations before LruBlockCache and BucketCache are migrated to 
> CacheEngine directly.
> CombinedBlockCache currently coordinates LruBlockCache and BucketCache using 
> exclusive L1/L2 semantics. TieredExclusiveTopology is the intended topology 
> model for that behavior, but existing cache implementations still implement 
> BlockCache rather than CacheEngine.
> This ticket adds a compatibility bridge that adapts existing BlockCache 
> implementations to CacheEngine so they can participate in 
> TieredExclusiveTopology and be exercised through 
> TopologyBackedCacheAccessService.
> Proposed approach:
> * Add a BlockCache-backed CacheEngine adapter.
> * Delegate get/cache/evict/stat/size/lifecycle operations from the adapter to 
> the wrapped BlockCache.
> * Use the adapter to build TieredExclusiveTopology instances backed by 
> existing LruBlockCache and BucketCache objects.
> * Add tests for topology-backed exclusive L1/L2 behavior, including L1 hit, 
> L2 hit, promotion, cache insertion, eviction, and shutdown.
> * Preserve existing runtime behavior. This ticket should not replace default 
> production CombinedBlockCache wiring unless behavior equivalence is 
> explicitly proven and agreed on.
> Out of scope:
> * Do not introduce a new CacheTopology type.
> * Do not migrate LruBlockCache to implement CacheEngine directly.
> * Do not migrate BucketCache to implement CacheEngine directly.
> * Do not remove CombinedBlockCache.
> * Do not refactor BlockCacheFactory.
> * Do not change default production cache behavior.
> * Do not change cache placement, eviction, or promotion semantics beyond what 
> is needed for compatibility testing.
> Acceptance criteria:
> * Existing BlockCache implementations can be adapted to CacheEngine.
> * TieredExclusiveTopology can be assembled using BlockCache-backed engines.
> * TopologyBackedCacheAccessService can exercise the adapted topology.
> * Tests cover CombinedBlockCache-like exclusive L1/L2 behavior.
> * Existing BlockCache-backed runtime behavior remains unchanged.
> ** 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)

Reply via email to