You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Zheng Hu (Jira)" <ji...@apache.org> on 2019/09/09 09:55:00 UTC
[jira] [Commented] (HBASE-22802) Avoid temp ByteBuffer allocation
in FileIOEngine#read
[ https://issues.apache.org/jira/browse/HBASE-22802?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16925533#comment-16925533 ]
Zheng Hu commented on HBASE-22802:
----------------------------------
Pushed to branch-2 & master , Thanks [~javaman_chen] for contributing, please fill the release node about the feature, [~javaman_chen].
> Avoid temp ByteBuffer allocation in FileIOEngine#read
> -----------------------------------------------------
>
> Key: HBASE-22802
> URL: https://issues.apache.org/jira/browse/HBASE-22802
> Project: HBase
> Issue Type: Improvement
> Components: BucketCache
> Reporter: chenxu
> Assignee: chenxu
> Priority: Major
> Fix For: 3.0.0, 2.3.0
>
> Attachments: HBASE-22802-master-v1.patch, profile_mem_alloc.png, profile_mem_alloc_with_pool.png
>
>
> a temp ByteBuffer was allocated each time FileIOEngine#read was called
> {code:java}
> public Cacheable read(BucketEntry be) throws IOException {
> long offset = be.offset();
> int length = be.getLength();
> Preconditions.checkArgument(length >= 0, "Length of read can not be less than 0.");
> ByteBuffer dstBuffer = ByteBuffer.allocate(length);
> ...
> }
> {code}
> we can avoid this by use of ByteBuffAllocator#allocate(length) after HBASE-21879
--
This message was sent by Atlassian Jira
(v8.3.2#803003)