[ https://issues.apache.org/jira/browse/HBASE-15177?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15124228#comment-15124228 ]
stack commented on HBASE-15177: ------------------------------- bq. CodedInputStream is final ! Missed that. I knew there was something to prevent our being able to extend/replace. I notice that pb2.6.0 says CIS supports BBs. See https://github.com/google/protobuf/releases/tag/v2.6.0 or this is easier to read: http://upstream.rosalinux.ru/changelogs/protobuf/2.6.0/changelog.html There is this nice doc on how compat 2.5 vs 2.6 is: http://upstream.rosalinux.ru/versions/protobuf.html I should try it out. See if we can use 2.6 to read from hdfs. On the patch, seems odd pulling BBIS from zookeeper especially given we have a BBOS in hbase itself. To fix one day. Can we just remove AnnotationReadingPriorityFunction now you've done all the convertions [~enis]? Can do in another issue. +1 > 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)