hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ryan rawson (JIRA)" <j...@apache.org>
Subject [jira] Commented: (HBASE-2663) LRU cache makes needless datastructure copies during eviction
Date Wed, 28 Jul 2010 20:44:16 GMT

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

ryan rawson commented on HBASE-2663:

So there is another thing here, by deferring the evictions to the
background thread you increase the chance that the block will be
tenured then it must be collected from CMS space, thus radically
increasing the GC complexity of the cache.  Originally when the LRU
block cache came in, it made my collections 10x as slow until I
disabled the block cache for compactions.

Unfortunately all these micro-optimizations might be falling under the
GC wayside.

> LRU cache makes needless datastructure copies during eviction
> -------------------------------------------------------------
>                 Key: HBASE-2663
>                 URL: https://issues.apache.org/jira/browse/HBASE-2663
>             Project: HBase
>          Issue Type: Improvement
>          Components: regionserver
>            Reporter: Todd Lipcon
> Was browsing the LRU eviction code and came upon some very inefficient code. When we
do eviction, BlockBucket.free() calls queue.get() which first inserts everything from the
PriorityQueue<Block> into a LinkedList, then copies that entire linked list into an
array. We then iterate over usually just a small percentage of the array to free some blocks
until we have freed the requested amount.
> We ought to be able to just pull items out of the PriorityQueue directly and avoid all
the churn.

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

View raw message