VladRodionov opened a new pull request, #8653:
URL: https://github.com/apache/hbase/pull/8653
This PR introduces LruCacheEngine as the native CacheEngine implementation
of the existing
LruBlockCache functionality.
The goal is to migrate the LRU block cache implementation to the new
pluggable block cache
architecture without requiring LruBlockCache to be wrapped by
BlockCacheBackedCacheEngine.
Main changes:
* Add LruCacheEngine as a native CacheEngine implementation.
* Preserve the existing LRU cache implementation, eviction algorithm,
accounting, statistics,
configuration, and test-facing functionality.
* Remove victim-cache orchestration from the LRU implementation. Tier
interaction is now the
responsibility of CacheTopology.
* Add CacheEvictionListener support for capacity-driven eviction events.
* Propagate L1 capacity evictions through CacheTopology so
TieredExclusiveTopology can move
evicted blocks to L2.
* Preserve inclusive topology semantics where an L1 capacity eviction does
not unnecessarily
reinsert a block already present in L2.
* Add native CacheEngine construction to BlockCacheFactory.
* Update CacheAccessServices configuration-based construction to use native
CacheEngine
implementations directly where available.
* Keep BlockCacheBackedCacheEngine as the compatibility adapter for cache
implementations that
have not yet been migrated.
* Update CacheConfig copy semantics so a native CacheAccessService is
preserved even when no
legacy BlockCache is available.
* Update BlockCacheUtil functionality required by native CacheEngine
implementations.
* Add explicit test coverage verifying that the LRU policy creates
LruCacheEngine directly.
* Update affected HFile tests to validate the native CacheEngine rather than
requiring an
underlying LruBlockCache.
The production RegionServer still owns a legacy BlockCache. Migrating
RegionServer ownership to
CacheAccessService is intentionally left for a follow-up issue. Dynamic
cache sizing used by
HeapMemoryManager is also being handled separately.
Tests:
* hbase-server compilation passes.
* Relevant block cache, topology, CacheConfig, and HFile tests pass.
* Spotless/checkstyle checks pass.
--
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]