Vladimir Rodionov created HBASE-30380:
-----------------------------------------
Summary: Add configuration change propagation through
CacheAccessService
Key: HBASE-30380
URL: https://issues.apache.org/jira/browse/HBASE-30380
Project: HBase
Issue Type: New Feature
Components: BlockCache
Reporter: Vladimir Rodionov
Assignee: Vladimir Rodionov
Fix For: 4.0.0-alpha-1
{{CacheConfig}} currently implements {{PropagatingConfigurationObserver}} and
registers its legacy {{BlockCache}} instance as a child configuration observer.
With the new pluggable block cache architecture, {{CacheAccessService}} is the
primary cache abstraction and may be backed by native {{CacheEngine}}
implementations that do not expose a legacy {{{}BlockCache{}}}.
As a result, configuration changes must be propagated through
{{CacheAccessService}} rather than through the legacy
{{{}BlockCache{}}}compatibility reference.
This change should make {{CacheAccessService}} participate in the HBase
configuration propagation mechanism and ensure topology-backed services forward
configuration changes to their underlying cache engines.
* Make {{CacheAccessService}} participate in
{{{}PropagatingConfigurationObserver{}}}.
* Implement configuration propagation in
{{{}TopologyBackedCacheAccessService{}}}.
* Propagate configuration changes to all engines in the active
{{{}CacheTopology{}}}.
* Use the existing {{CacheEngine.onConfigurationChange(Configuration)}} hook.
* Update {{CacheConfig.registerChildren()}} / {{deregisterChildren()}} to
register {{cacheAccessService}} instead of {{{}blockCache{}}}.
* Keep legacy {{BlockCache}} behavior working through
{{{}BlockCacheBackedCacheEngine{}}}.
* Add tests for single-tier and tiered topologies.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)