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

Vladimir Rodionov updated HBASE-30105:
--------------------------------------
    Description: 
h2. Description

Refactor *BucketCache* to implement the new *CacheEngine* abstraction as part 
of the pluggable block cache architecture.

BucketCache is the current off-heap / file-backed cache implementation used for 
large-capacity storage. This change adapts BucketCache to the CacheEngine 
interface while preserving its existing behavior and internal design.

h2. Scope

* Adapt BucketCache to implement CacheEngine
* Map existing BucketCache operations to the engine contract, including:
** block lookup
** block insertion (asynchronous write path)
** invalidation (by key and by HFile)
** capacity and usage reporting
** stats exposure
* Preserve existing mechanisms:
** RAM queue and writer threads
** persistence/backing map behavior
** eviction semantics
** block lifecycle management
* Ensure compatibility with existing integration points during migration

h2. Notes

* No behavior change intended
* BucketCache should preserve its current semantics for:
** asynchronous write path
** eviction and capacity management
** file-based invalidation
** statistics and metrics
* This ticket does *not* include topology changes
* This ticket does *not* include admission or placement policy changes
* This is a storage-layer refactoring and a step toward separating:
** CacheEngine (storage)
** CacheTopology (orchestration)
** CachePlacementPolicy (decisions)

* This is a higher-risk refactoring compared to LruBlockCache due to:
** asynchronous write path
** concurrency and persistence behavior
** interaction with HFile lifecycle

> Refactor BucketCache to implement CacheEngine
> ---------------------------------------------
>
>                 Key: HBASE-30105
>                 URL: https://issues.apache.org/jira/browse/HBASE-30105
>             Project: HBase
>          Issue Type: New Feature
>          Components: BlockCache, Performance
>            Reporter: Vladimir Rodionov
>            Assignee: Vladimir Rodionov
>            Priority: Major
>
> h2. Description
> Refactor *BucketCache* to implement the new *CacheEngine* abstraction as part 
> of the pluggable block cache architecture.
> BucketCache is the current off-heap / file-backed cache implementation used 
> for large-capacity storage. This change adapts BucketCache to the CacheEngine 
> interface while preserving its existing behavior and internal design.
> h2. Scope
> * Adapt BucketCache to implement CacheEngine
> * Map existing BucketCache operations to the engine contract, including:
> ** block lookup
> ** block insertion (asynchronous write path)
> ** invalidation (by key and by HFile)
> ** capacity and usage reporting
> ** stats exposure
> * Preserve existing mechanisms:
> ** RAM queue and writer threads
> ** persistence/backing map behavior
> ** eviction semantics
> ** block lifecycle management
> * Ensure compatibility with existing integration points during migration
> h2. Notes
> * No behavior change intended
> * BucketCache should preserve its current semantics for:
> ** asynchronous write path
> ** eviction and capacity management
> ** file-based invalidation
> ** statistics and metrics
> * This ticket does *not* include topology changes
> * This ticket does *not* include admission or placement policy changes
> * This is a storage-layer refactoring and a step toward separating:
> ** CacheEngine (storage)
> ** CacheTopology (orchestration)
> ** CachePlacementPolicy (decisions)
> * This is a higher-risk refactoring compared to LruBlockCache due to:
> ** asynchronous write path
> ** concurrency and persistence behavior
> ** interaction with HFile lifecycle



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to