Janardhan Hungund created HBASE-28900:
-----------------------------------------

             Summary: Avoid resetting bucket cache during restart if 
inconsistency is observed for some blocks.
                 Key: HBASE-28900
                 URL: https://issues.apache.org/jira/browse/HBASE-28900
             Project: HBase
          Issue Type: Bug
          Components: BucketCache
            Reporter: Janardhan Hungund


During the execution of persistence of backing map into the persistence file, 
the backing map is not guarded by a lock against caching of blocks and block 
evictions.

Hence, some of the block entries in the backing map in persistence may not be 
consistent with the bucket cache.
During, the retrieval of the backing map from persistence if an inconsistency 
is detected, the complete bucket cache is discarded and is rebuilt.

One of the errors, seen, is, as mentioned below:


{code:java}
2024-09-30 08:58:33,840 WARN 
org.apache.hadoop.hbase.io.hfile.bucket.BucketCache: Can't restore from 
file[/hadoopfs/ephfs1/bucketcache.map]. The bucket cache will be reset and 
rebuilt. Exception seen:
org.apache.hadoop.hbase.io.hfile.bucket.BucketAllocatorException: Couldn't find 
match for index 26 in free list
        at 
org.apache.hadoop.hbase.io.hfile.bucket.BucketAllocator$Bucket.addAllocation(BucketAllocator.java:140)
        at 
org.apache.hadoop.hbase.io.hfile.bucket.BucketAllocator.<init>(BucketAllocator.java:406)
        at 
org.apache.hadoop.hbase.io.hfile.bucket.BucketCache.retrieveFromFile(BucketCache.java:1486)
        at 
org.apache.hadoop.hbase.io.hfile.bucket.BucketCache.lambda$startPersistenceRetriever$0(BucketCache.java:377)
        at java.base/java.lang.Thread.run(Thread.java:840) {code}

This retrieval can be optimised to only discard the inconsistent entries in the 
persistent backing map and retain the remaining entries. The bucket cache 
validator will throw away the inconsistent entry from the backing map.

Thanks,
Janardhan



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to