[
https://issues.apache.org/jira/browse/HBASE-9867?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13810521#comment-13810521
]
Jeffrey Zhong commented on HBASE-9867:
--------------------------------------
This is a great catch. I was wondering why ByteString construction is so heavy
a while back.
Just to my curiosities: what's the reason you don't put LiteralByteString
construction into ProtobufUtil. For the function zeroCopyGetBytes, could we
pass LiteralByteString as input parameter type because the function doesn't
support other types anyway? Thanks. Great patch.
> Save on array copies with a subclass of LiteralByteString
> ---------------------------------------------------------
>
> Key: HBASE-9867
> URL: https://issues.apache.org/jira/browse/HBASE-9867
> Project: HBase
> Issue Type: Improvement
> Components: Protobufs
> Affects Versions: 0.96.0
> Reporter: stack
> Assignee: stack
> Fix For: 0.98.0, 0.96.1
>
> Attachments: 9867.txt, 9867.txt
>
>
> Any time we add a byte array to a protobuf, it'll copy the byte array.
> I was playing with the client and noticed how a bunch of CPU and copying was
> being done just to copy basic arrays doing pb construction. I started to
> look at ByteString and then remembered a class Benoit sent me a while back
> that I did not understand from his new AsyncHBase. After looking in
> ByteString it made now sense. So, rather than copy byte arrays everywhere,
> do a version of a ByteString that instead wraps the array.
--
This message was sent by Atlassian JIRA
(v6.1#6144)