VladRodionov opened a new pull request, #8704:
URL: https://github.com/apache/hbase/pull/8704
## Summary
Propagates runtime configuration changes through the CacheAccessService /
CacheEngine
architecture instead of relying on the legacy BlockCache compatibility
reference.
## Changes
* Make `CacheEngine` participate in HBase configuration updates via
`ConfigurationObserver`, with a default no-op
`onConfigurationChange(Configuration)`.
* Add a default no-op configuration callback to `CacheAccessService`.
* Implement configuration propagation in `TopologyBackedCacheAccessService`.
* Forward configuration changes to every `CacheEngine` participating in the
active
`CacheTopology`.
* Update `CacheConfig.registerChildren()` and `deregisterChildren()` to
register the
`CacheAccessService` rather than the legacy `BlockCache`.
* Preserve legacy BlockCache configuration behavior through
`BlockCacheBackedCacheEngine`.
* Add tests for configuration propagation through single-tier and tiered
topologies and
CacheConfig child registration.
## Motivation
`CacheAccessService` is now the primary cache abstraction and can be backed
by native
`CacheEngine` implementations which do not expose a legacy `BlockCache`.
Registering only the legacy BlockCache with the configuration propagation
mechanism would
therefore bypass native cache engines.
This change makes `CacheAccessService` the configuration propagation root
for the cache
subsystem:
CacheConfig
|
v
CacheAccessService
|
v
CacheTopology
|
+--> CacheEngine
+--> CacheEngine
Legacy BlockCache implementations continue to receive configuration updates
through
`BlockCacheBackedCacheEngine`, avoiding duplicate registration and keeping
the migration
path compatible with existing cache implementations.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]