[ 
https://issues.apache.org/jira/browse/HBASE-3976?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13047783#comment-13047783
 ] 

Nicolas Spiegelberg commented on HBASE-3976:
--------------------------------------------

I don't think this patch is doing what you're expecting.  
Store.completeCompaction() is at the end of a compaction.  You give the new 
StoreFile a pointer to the BlockCache so it is possible for that file to cache 
blocks.  This StoreFile (with associated reader) is put in Store.storefiles, 
which is utilized for all gets/scans.  It seems like your patch will 
unconditionally disable the block cache for all StoreFiles that are the result 
of a compaction.

The actual decision on whether you put scan requests for StoreFiles in the 
block cache during compaction is handled by 
StoreFileScanner.getScannersForStoreFiles() in Store.compactStores().  That is 
unconditionally set to false.

> Disable Block Cache On Compactions
> ----------------------------------
>
>                 Key: HBASE-3976
>                 URL: https://issues.apache.org/jira/browse/HBASE-3976
>             Project: HBase
>          Issue Type: Improvement
>          Components: regionserver
>    Affects Versions: 0.90.3
>            Reporter: Karthick Sankarachary
>            Assignee: Karthick Sankarachary
>            Priority: Minor
>             Fix For: 0.90.4
>
>         Attachments: HBASE-3976-unconditional.patch, HBASE-3976.patch
>
>
> Is there a good reason to believe that caching blocks during compactions is 
> beneficial? Currently, if block cache is enabled on a certain family, then 
> every time it's compacted, we load all of its blocks into the (LRU) cache, at 
> the expense of the legitimately hot ones.
> As a matter of fact, this concern was raised earlier in HBASE-1597, which 
> rightly points out that, "we should not bog down the LRU with unneccessary 
> blocks" during compaction. Even though that issue has been marked as "fixed", 
> it looks like it ought to be reopened.
> Should we err on the side of caution and not cache blocks during compactions 
> period (as illustrated in the attached patch)? Or, can we be selectively 
> aggressive about what blocks do get cached during compaction (e.g., only 
> cache those blocks from the recent files)?

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to