[
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)