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

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

Sorry for being late here.
I had a go at the new NettRpcServer class.. I have some concerns/Qs
In request side I can see that to HBaseDecoder, we pass a ChannelBuffer and 
from that again read the request into an on heap NIO BB.  In response part, we 
have our cells in an off heap BB and we have a BufferChain.  This is again 
written into a ChannelBuffer. That is DynamicChannelBuffer.  So we have again a 
copy from off heap area.  And then this is passed to down layers of netty..  Am 
not sure how that area being implemented.
In our current RpcServer it is very less copy across now.  While response, we 
will accumulate the cells into off heap BB (this is a pooled BB from BBBPool) 
and that is passed to SocketChannel.  When we pass a DBB to it, there is no 
further copy and given to OS layers.  When request processing, as of now, we 
pass an on heap on demand created BB. The socket layer will 1st read the 
request bytes into a off heap BB and copy back that into passed on heap BB.  In 
write path offheaping work we try to change.  We will pass DBBs obtained from 
pool and socket layer will directy read into it and we will make Cells directly 
over this DBBs and later the cells are data copied into MSLAB area just before 
adding to memstore.

AFAIK, the netty ByteBuff is having all support to work with NIO BB.  We can 
just make wrapper both side with out any data copy.  So can u tell the details 
abt the down layers of actual n/w movement.Can we do like above with just 1 
copy?

> Pluggable RpcServer
> -------------------
>
>                 Key: HBASE-15756
>                 URL: https://issues.apache.org/jira/browse/HBASE-15756
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: binlijin
>            Assignee: binlijin
>         Attachments: NettyRpcServer.patch
>
>
> Current we use a simple RpcServer, and can not configure and use other 
> implementation.This issue is to make the RpcServer pluggable, so we can make 
> other implementation for example netty rpc server. Patch will upload laterly



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

Reply via email to