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]

Reply via email to