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

Jonathan Gray commented on HBASE-1597:
--------------------------------------

Good point, Andrew.  Somehow I forgot about an issue I actually filed, 
HBASE-1521.

Really what I didn't like in my patch was how I re-instantiate the Reader as a 
CompactionReader, since I can't cast up to it.  I did it in a way that just 
assigns all the internal variables so there's not much real overhead besides 
the instantiation.  Seems like there could be a prettier way but it works and 
performance impact should be negligible.

Thanks.

> Prevent unnecessary caching of blocks during compactions
> --------------------------------------------------------
>
>                 Key: HBASE-1597
>                 URL: https://issues.apache.org/jira/browse/HBASE-1597
>             Project: Hadoop HBase
>          Issue Type: Bug
>    Affects Versions: 0.20.0
>            Reporter: Jonathan Gray
>            Assignee: Jonathan Gray
>             Fix For: 0.20.0
>
>         Attachments: HBASE-1597-v1.patch
>
>
> When running any kind of compaction, we read every block of every storefile 
> being compacted into the block cache.
> We would like to reuse any already cached blocks, if available, but otherwise 
> we should not bog down the LRU with unnecessary blocks.
> This is not as bad as it was with the old LRU because the latest LRU 
> implementation (HBASE-1460) is scan-resistant.  This ensures that we are not 
> causing massive eviction of the blocks that are being read multiple times or 
> from in-memory tables.  However, this does add to the GC-woes of an import 
> because each block gets further referenced, and for longer periods of time.  
> There is also overhead in running the LRU evictions.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to