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

Jason Rutherglen commented on HBASE-4027:
-----------------------------------------

{quote}One big question is whether you're going to make copies out of the 
direct byte buffers on each read of that block, or if you're going to change 
KeyValue to use the ByteBuffer interface (or some other) instead of the byte[] 
directly{quote}

Right the {{HFile.Scanner.getKeyValue()}} method is calling {{block.array()}}.  
We'd need to track down all {{byte[]}} references, and convert them to 
{{ByteBuffer}}.  That's more of a separate Jira.  

I think converting a direct ByteBuffer to byte[] will generate a fair amount of 
garbage, though of a different (smaller and more numerous) kind than the blocks.

> Enable direct byte buffers LruBlockCache
> ----------------------------------------
>
>                 Key: HBASE-4027
>                 URL: https://issues.apache.org/jira/browse/HBASE-4027
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Jason Rutherglen
>            Priority: Minor
>
> Java offers the creation of direct byte buffers which are allocated outside 
> of the heap.
> They need to be manually free'd, which can be accomplished using an 
> documented {{clean}} method.
> The feature will be optional.  After implementing, we can benchmark for 
> differences in speed and garbage collection observances.

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

        

Reply via email to