[
https://issues.apache.org/jira/browse/HBASE-16703?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15522176#comment-15522176
]
Anoop Sam John commented on HBASE-16703:
----------------------------------------
Ya as long as we are within the same read op, we will reuse this byte[] to
create key. When the cell is created, we will copy into a newly created byte[],
of size equal to size of this cell's key. So it is not like for every cell we
will create byte[] of size INITIAL_BUFFER_SIZE. But am not sure how is this in
0.98 [~apurtell]. I believe it is not this way. Might be good to improve
there as well.
> Explore object pooling of SeekerState
> -------------------------------------
>
> Key: HBASE-16703
> URL: https://issues.apache.org/jira/browse/HBASE-16703
> Project: HBase
> Issue Type: Task
> Reporter: Andrew Purtell
>
> In read workloads 35% of the allocation pressure produced by servicing RPC
> requests, when block encoding is enabled, comes from
> BufferedDataBlockEncoder$SeekerState.<init>, where we allocate two byte
> arrays of INITIAL_KEY_BUFFER_SIZE in length. There's an opportunity for
> object pooling of SeekerState here. Subsequent code checks if those byte
> arrays are sized sufficiently to handle incoming data to copy. The arrays
> will be resized if needed.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)