wchevreuil commented on code in PR #8128:
URL: https://github.com/apache/hbase/pull/8128#discussion_r3160644008


##########
hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.java:
##########
@@ -2490,7 +2490,17 @@ public Optional<Boolean> shouldCacheFile(HFileInfo 
hFileInfo, Configuration conf
     String fileName = hFileInfo.getHFileContext().getHFileName();
     DataTieringManager dataTieringManager = DataTieringManager.getInstance();
     if (dataTieringManager != null && !dataTieringManager.isHotData(hFileInfo, 
conf)) {
-      LOG.debug("Data tiering is enabled for file: '{}' and it is not hot 
data", fileName);
+      LOG.debug("Custom tiering is enabled for file: '{}' and it is not hot 
data", fileName);
+      // If custom tiering has been just enabled for a file that was cached, 
we now need
+      // to evict it.
+      Set<BlockCacheKey> keySet =
+        getAllCacheKeysForFile(hFileInfo.getHFileContext().getHFileName(), 0, 
Long.MAX_VALUE);
+      int evictedBlocks = evictBlockSet(keySet);

Review Comment:
   Yeah, not ideal, but I still think it should be BucketCache responsibility 
to evict blocks from files that became classified as cold, upon changing time 
based priority configuration. Moving this to DataTieringManager would tighter 
couple it with BucketCache.



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