Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
2.6.0, 3.0.0-beta-1, 4.0.0-alpha-1, 2.7.0
-
None
Description
HBASE-27313, HBASE-27686 and HBASE-27743 have extended BucketCache persistent cache capabilities to make it resilient to RS crashes or non graceful stops, when using file based ioengine for BucketCache.
BucketCache maintains two main collections for tracking blocks in the cache: backingMap and blocksByHFile. The former is used as the main index of blocks for the actual cache, whilst the latter is a set of all blocks in the cache ordered by name, in order to conveniently and efficiently retrieve the list of all blocks from a single file in the BucketCache.evictBlocksByHfile method.
The problem is that at cache recovery time, we are populating the blocksByHFile set, which causes any calls to BucketCache.evictBlocksByHfile method to not evict any blocks, once we have recovered the cache from the cache persistence file (for instance, after a n RS restart).
Attachments
Issue Links
- relates to
-
HBASE-27743 Enhancements for the persistent cache
- Resolved
-
HBASE-27313 Persist list of Hfiles names for which prefetch is done
- Resolved
-
HBASE-27686 Recovery of BucketCache and Prefetched data after RS Crash
- Resolved
- links to