[jira] [Updated] (HBASE-30019) Introduce CacheEngine and CacheTopology abstractions (no behavior change)

2026-04-27 Thread ASF GitHub Bot (Jira)


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

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

> Introduce CacheEngine and CacheTopology abstractions (no behavior change)
> -
>
> Key: HBASE-30019
> URL: https://issues.apache.org/jira/browse/HBASE-30019
> Project: HBase
>  Issue Type: New Feature
>  Components: BlockCache, Performance
>Reporter: Vladimir Rodionov
>Assignee: Vladimir Rodionov
>Priority: Major
>  Labels: pull-request-available
>
> h2. Description
> Introduce core internal abstractions for a pluggable block cache architecture.
> The goal of this change is to establish clear separation of concerns between 
> storage, orchestration, and future policy layers by introducing the following 
> foundational abstractions:
> * *CacheEngine* — storage abstraction for cache backends (e.g., 
> LruBlockCache, BucketCache)
> * *CacheTopology* — L1/L2 orchestration and coordination layer
> * request/write context objects to support future decoupling of read/write 
> paths from cache implementations
> This change is purely architectural and does not modify existing behavior.
> h3. Scope
> * Introduce *CacheEngine* interface defining core cache operations:
> ** block lookup
> ** block insertion
> ** invalidation
> ** capacity/usage reporting
> ** stats exposure
> * Introduce *CacheTopology* abstraction for coordinating multiple cache tiers:
> ** define topology interface (no functional changes yet)
> ** provide minimal/default implementation if needed
> * Introduce context objects to support future API evolution:
> ** request context (read path)
> ** write context (cache population)
> ** invalidation context (file lifecycle events)
> * Ensure new abstractions are not yet wired into existing call sites:
> ** no changes to HFileReaderImpl
> ** no changes to write path
> ** no changes to CombinedBlockCache logic
> h3. Notes
> * No behavior change intended
> * Existing cache implementations (*LruBlockCache*, *BucketCache*, 
> *CombinedBlockCache*) remain unchanged
> * Current call paths continue to use *BlockCache* directly
> * This is a foundation step enabling future work:
> ** introduction of CacheAccessService
> ** migration of call sites
> ** extraction of topology from CombinedBlockCache
> ** introduction of placement/admission policy
> ** refactoring of cache implementations into CacheEngine
> * This ticket should remain minimal and low-risk to simplify review and 
> establish the architectural baseline



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


[jira] [Updated] (HBASE-30019) Introduce CacheEngine and CacheTopology abstractions (no behavior change)

2026-04-22 Thread Vladimir Rodionov (Jira)


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

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

Introduce core internal abstractions for a pluggable block cache architecture.

The goal of this change is to establish clear separation of concerns between 
storage, orchestration, and future policy layers by introducing the following 
foundational abstractions:

* *CacheEngine* — storage abstraction for cache backends (e.g., LruBlockCache, 
BucketCache)
* *CacheTopology* — L1/L2 orchestration and coordination layer
* request/write context objects to support future decoupling of read/write 
paths from cache implementations

This change is purely architectural and does not modify existing behavior.

h3. Scope

* Introduce *CacheEngine* interface defining core cache operations:
** block lookup
** block insertion
** invalidation
** capacity/usage reporting
** stats exposure

* Introduce *CacheTopology* abstraction for coordinating multiple cache tiers:
** define topology interface (no functional changes yet)
** provide minimal/default implementation if needed

* Introduce context objects to support future API evolution:
** request context (read path)
** write context (cache population)
** invalidation context (file lifecycle events)

* Ensure new abstractions are not yet wired into existing call sites:
** no changes to HFileReaderImpl
** no changes to write path
** no changes to CombinedBlockCache logic

h3. Notes

* No behavior change intended
* Existing cache implementations (*LruBlockCache*, *BucketCache*, 
*CombinedBlockCache*) remain unchanged
* Current call paths continue to use *BlockCache* directly
* This is a foundation step enabling future work:
** introduction of CacheAccessService
** migration of call sites
** extraction of topology from CombinedBlockCache
** introduction of placement/admission policy
** refactoring of cache implementations into CacheEngine

* This ticket should remain minimal and low-risk to simplify review and 
establish the architectural baseline

  was:
h2. Description

Introduce core internal abstractions for a pluggable block cache architecture:

* *CacheEngine* — storage abstraction for cache backends
* *CacheTopology* — L1/L2 orchestration and coordination layer
* request/write context objects

This change is strictly architectural and introduces new APIs without altering 
existing behavior.

h3. Notes

* No behavior change intended
* Existing cache implementations (*LruBlockCache*, *BucketCache*) continue to 
work as-is
* No changes to current call sites (*BlockCache* usage remains unchanged)
* Serves as the foundation for subsequent refactoring and migration steps


> Introduce CacheEngine and CacheTopology abstractions (no behavior change)
> -
>
> Key: HBASE-30019
> URL: https://issues.apache.org/jira/browse/HBASE-30019
> Project: HBase
>  Issue Type: New Feature
>  Components: BlockCache, Performance
>Reporter: Vladimir Rodionov
>Assignee: Vladimir Rodionov
>Priority: Major
>
> h2. Description
> Introduce core internal abstractions for a pluggable block cache architecture.
> The goal of this change is to establish clear separation of concerns between 
> storage, orchestration, and future policy layers by introducing the following 
> foundational abstractions:
> * *CacheEngine* — storage abstraction for cache backends (e.g., 
> LruBlockCache, BucketCache)
> * *CacheTopology* — L1/L2 orchestration and coordination layer
> * request/write context objects to support future decoupling of read/write 
> paths from cache implementations
> This change is purely architectural and does not modify existing behavior.
> h3. Scope
> * Introduce *CacheEngine* interface defining core cache operations:
> ** block lookup
> ** block insertion
> ** invalidation
> ** capacity/usage reporting
> ** stats exposure
> * Introduce *CacheTopology* abstraction for coordinating multiple cache tiers:
> ** define topology interface (no functional changes yet)
> ** provide minimal/default implementation if needed
> * Introduce context objects to support future API evolution:
> ** request context (read path)
> ** write context (cache population)
> ** invalidation context (file lifecycle events)
> * Ensure new abstractions are not yet wired into existing call sites:
> ** no changes to HFileReaderImpl
> ** no changes to write path
> ** no changes to CombinedBlockCache logic
> h3. Notes
> * No behavior change intended
> * Existing cache implementations (*LruBlockCache*, *BucketCache*, 
> *CombinedBlockCache*) remain unchanged
> * Current call paths continue to use *BlockCache* directly
> * This is a foundation step enabling future work:
> ** introduction of CacheAccessService
> ** migration of call sit

[jira] [Updated] (HBASE-30019) Introduce CacheEngine and CacheTopology abstractions (no behavior change)

2026-04-22 Thread Vladimir Rodionov (Jira)


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

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

Introduce core internal abstractions for a pluggable block cache architecture:

* *CacheEngine* — storage abstraction for cache backends
* *CacheTopology* — L1/L2 orchestration and coordination layer
* request/write context objects

This change is strictly architectural and introduces new APIs without altering 
existing behavior.

h3. Notes

* No behavior change intended
* Existing cache implementations (*LruBlockCache*, *BucketCache*) continue to 
work as-is
* No changes to current call sites (*BlockCache* usage remains unchanged)
* Serves as the foundation for subsequent refactoring and migration steps

  was:
Introduce core internal abstractions for a pluggable block cache architecture:
•   CacheEngine (storage interface)
•   CacheTopology (L1/L2 orchestration)
•   request/write context objects

This change is strictly a refactoring:
•   no behavior change
•   existing LruBlockCache and BucketCache continue to work as-is
•   serves as foundation for future work


> Introduce CacheEngine and CacheTopology abstractions (no behavior change)
> -
>
> Key: HBASE-30019
> URL: https://issues.apache.org/jira/browse/HBASE-30019
> Project: HBase
>  Issue Type: New Feature
>  Components: BlockCache, Performance
>Reporter: Vladimir Rodionov
>Assignee: Vladimir Rodionov
>Priority: Major
>
> h2. Description
> Introduce core internal abstractions for a pluggable block cache architecture:
> * *CacheEngine* — storage abstraction for cache backends
> * *CacheTopology* — L1/L2 orchestration and coordination layer
> * request/write context objects
> This change is strictly architectural and introduces new APIs without 
> altering existing behavior.
> h3. Notes
> * No behavior change intended
> * Existing cache implementations (*LruBlockCache*, *BucketCache*) continue to 
> work as-is
> * No changes to current call sites (*BlockCache* usage remains unchanged)
> * Serves as the foundation for subsequent refactoring and migration steps



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


[jira] [Updated] (HBASE-30019) Introduce CacheEngine and CacheTopology abstractions (no behavior change)

2026-04-22 Thread Vladimir Rodionov (Jira)


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

Vladimir Rodionov updated HBASE-30019:
--
Description: 
Introduce core internal abstractions for a pluggable block cache architecture:
•   CacheEngine (storage interface)
•   CacheTopology (L1/L2 orchestration)
•   request/write context objects

This change is strictly a refactoring:
•   no behavior change
•   existing LruBlockCache and BucketCache continue to work as-is
•   serves as foundation for future work

  was:
Introduce core internal abstractions for a pluggable block cache architecture:
•   BlockCacheEngine (storage interface)
•   CacheTopology (L1/L2 orchestration)
•   request/write context objects

This change is strictly a refactoring:
•   no behavior change
•   existing LruBlockCache and BucketCache continue to work as-is
•   serves as foundation for future work


> Introduce CacheEngine and CacheTopology abstractions (no behavior change)
> -
>
> Key: HBASE-30019
> URL: https://issues.apache.org/jira/browse/HBASE-30019
> Project: HBase
>  Issue Type: New Feature
>  Components: BlockCache, Performance
>Reporter: Vladimir Rodionov
>Assignee: Vladimir Rodionov
>Priority: Major
>
> Introduce core internal abstractions for a pluggable block cache architecture:
>   •   CacheEngine (storage interface)
>   •   CacheTopology (L1/L2 orchestration)
>   •   request/write context objects
> This change is strictly a refactoring:
>   •   no behavior change
>   •   existing LruBlockCache and BucketCache continue to work as-is
>   •   serves as foundation for future work



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


[jira] [Updated] (HBASE-30019) Introduce CacheEngine and CacheTopology abstractions (no behavior change)

2026-04-22 Thread Vladimir Rodionov (Jira)


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

Vladimir Rodionov updated HBASE-30019:
--
Summary: Introduce CacheEngine and CacheTopology abstractions (no behavior 
change)  (was: Introduce BlockCacheEngine and CacheTopology abstractions (no 
behavior change))

> Introduce CacheEngine and CacheTopology abstractions (no behavior change)
> -
>
> Key: HBASE-30019
> URL: https://issues.apache.org/jira/browse/HBASE-30019
> Project: HBase
>  Issue Type: New Feature
>  Components: BlockCache, Performance
>Reporter: Vladimir Rodionov
>Assignee: Vladimir Rodionov
>Priority: Major
>
> Introduce core internal abstractions for a pluggable block cache architecture:
>   •   BlockCacheEngine (storage interface)
>   •   CacheTopology (L1/L2 orchestration)
>   •   request/write context objects
> This change is strictly a refactoring:
>   •   no behavior change
>   •   existing LruBlockCache and BucketCache continue to work as-is
>   •   serves as foundation for future work



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