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.

Reply via email to