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

Anoop Sam John commented on HBASE-19496:
----------------------------------------

bq.Rpc server has no idea about how server use the pb object even if we parse 
the method from request. Cloneing all request data in rpc layer may make server 
burn out. I prefer to assume all pb object passed from rpc layer is modifiable, 
and rs/master should do the clone if they want to keep the pb object after the 
call is done.
Ya what I was saying is apart from the mutation requests, others should not use 
the BBpool.   Ya difficult.. It make sense to make sure when we keep the PB 
object, clone it.  For Cells this is what we do. By default we will copy to 
MSLAB. If not, we are cloning then while adding to CSLM.  I did not say it 1st 
as the code of cloning will be distributed across the code base and we may miss 
some !  But this is the best way considering the perf aspects.
bq.HM can host the normal region, so I think the BBpool is still useful for HM.
By default it is not there. No regions in HM.  So by default we can make it off 
is what I was thinking. Where as in RS this is by default ON.  May be do as a 
subtask also ok. I can raise one and work with that if u are ok.

> Reusing the ByteBuffer in rpc layer corrupt the ServerLoad and RegionLoad
> -------------------------------------------------------------------------
>
>                 Key: HBASE-19496
>                 URL: https://issues.apache.org/jira/browse/HBASE-19496
>             Project: HBase
>          Issue Type: Bug
>            Reporter: Chia-Ping Tsai
>            Assignee: Chia-Ping Tsai
>            Priority: Blocker
>             Fix For: 2.0.0-beta-1
>
>         Attachments: HBASE-19496.wip.patch
>
>
> {{ServerLoad}} and {{RegionLoad}} store the pb object internally but the 
> bytebuffer of pb object may be reused in rpc layer. Hence, the {{ServerLoad}} 
> and {{RegionLoad}} which saved by {{HMaster}} will be corrupted if the 
> bytebuffer backed is modified.
> This issue doesn't happen on branch-1.
> # netty server was introduced in 2.0 (see HBASE-17263)
> # reusing bytebuffer to read RPC requests was introduced in 2.0 (see 
> HBASE-15788)



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to