mwkang opened a new pull request, #8469:
URL: https://github.com/apache/hbase/pull/8469

   See [HBASE-30285](https://issues.apache.org/jira/browse/HBASE-30285).
   
   `BucketCache` keeps an owner reference for each `BucketEntry` stored in 
`backingMap`.
   The existing shutdown and disable paths clear the cache without marking 
these entries as evicted, so their reference counts may never reach zero.
   
   This change:
   
   - stops writer threads before cleaning `ramCache` and `backingMap`
   - stops the persister and saves persistent metadata before releasing entries
   - releases each `backingMap` owner reference under its offset write lock
   - prevents new entries from being published after cache disable starts
   - performs cleanup asynchronously when an IO error disables the cache, 
avoiding writer self-join and offset lock upgrade deadlocks
   - shuts down the IO engine after cache cleanup completes
   - releases entries removed after persistent-cache read failures through the 
normal eviction path
   
   The tests cover retained caller references, in-flight writers, concurrent 
and repeated shutdown, persistent-cache recovery, and cache disable while a 
producer is waiting on a full writer queue.


-- 
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