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

Enis Soztutar commented on HBASE-15177:
---------------------------------------

bq. Will this be needed? Because the CIS would have operated on the buf array 
only right?
This was an artifact of trying IS over BB in CIS. You are right, we do not need 
it. Removed. 

bq. On the patch, seems odd pulling BBIS from zookeeper especially given we 
have a BBOS in hbase itself. To fix one day.
Turns out we have our own BBIS. I did not realize that we were depending on the 
zk one. See HBASE-15193. 
bq. Can we just remove AnnotationReadingPriorityFunction now you've done all 
the convertions Enis Soztutar? Can do in another issue.
Client side operations like get/multi, etc are good now. We do not set the 
priorities at Admin or things like RegionServerReport, now. I think we need a 
follow up issue. 
bq. I notice that pb2.6.0 says CIS supports BBs
https://github.com/google/protobuf/blob/master/java/core/src/main/java/com/google/protobuf/CodedInputStream.java#L104
Still does copying to byte[] for reading. 

> Reduce garbage created under high load
> --------------------------------------
>
>                 Key: HBASE-15177
>                 URL: https://issues.apache.org/jira/browse/HBASE-15177
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Enis Soztutar
>            Assignee: Enis Soztutar
>             Fix For: 2.0.0, 1.3.0
>
>         Attachments: Screen Shot 2016-01-26 at 10.03.48 PM.png, Screen Shot 
> 2016-01-26 at 10.03.56 PM.png, Screen Shot 2016-01-26 at 10.06.16 PM.png, 
> Screen Shot 2016-01-26 at 10.15.15 PM.png, hbase-15177_v0.patch
>
>
> I have been doing some profiling of the garbage being created. The idea was 
> to follow up on HBASE-14490 and experiment with offheap IPC byte buffers and 
> byte buffer re-use. However, without changing the IPC byte buffers for now, 
> there are a couple of (easy) improvements that I've identified from 
> profiling: 
> 1. RPCServer.Connection.processRequest() should work with ByteBuffer instead 
> of byte[] and not-recreate CodedInputStream a few times. 
> 2. RSRpcServices.getRegion() allocates two byte arrays for region, while only 
> 1 is needed.
> 3. AnnotationReadingPriorityFunction is very expensive in allocations. Mainly 
> it allocates the regionName byte[] to get the table name. We already set the 
> priority for most of the operations (multi, get, increment, etc) but we are 
> only reading the priority in case of multi. We should use the priority from 
> the client side. 
> Lets do the simple improvements in this patch, we can get to IPC buffer 
> re-use in HBASE-14490. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to