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.