[
https://issues.apache.org/jira/browse/HBASE-15756?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15743861#comment-15743861
]
binlijin commented on HBASE-15756:
----------------------------------
And i also test the Netty4RpcServer perf on master version, the Netty4RpcServer
can get at https://github.com/binlijin/hbase/tree/NettyRpcServer.
1 regionserver, 1 client machine, client and rs on different machine.
Write a table with 10M rows, then split into 32 regions, every row have only
one cell, keyLength=10B, valueLength=256B.
Only test random read, and all data cache in LruBlockCache.
Client: YCSB + hbase-1.1.2 client, start 16 YCSB process on client machine, and
every process have 32 threads.
share connections: use YCSB build with
https://github.com/brianfrankcooper/YCSB/commit/57e1ab5a0cae13d1766c8fa6bdbf9d9117ee50d0
No share connections: use YCSB build without
https://github.com/brianfrankcooper/YCSB/commit/57e1ab5a0cae13d1766c8fa6bdbf9d9117ee50d0
The result is:
(Master + Netty) + ( RpcClientImpl + No share connections ) = 500K
(Master + SingleResponder) + ( RpcClientImpl + No share connections ) =
500K
(Master + Netty) + ( RpcClientImpl + share connections ) = 500K
(Master + MultiResponder) + ( RpcClientImpl + share connections ) = 500K
(Master + SingleResponder) + ( RpcClientImpl + share connections ) = 295K
(Master + MultiResponder) + ( AsyncRpcClient + share connections ) = 570K
(Netty client)
(Master + Netty) + (AsyncRpcClient + share connections ) = 620K (Netty
client)
MultiResponder: see patch
MultiResponder.master.patch/MultiResponder.branch-1.patch
> Pluggable RpcServer
> -------------------
>
> Key: HBASE-15756
> URL: https://issues.apache.org/jira/browse/HBASE-15756
> Project: HBase
> Issue Type: Improvement
> Components: Performance, rpc
> Reporter: binlijin
> Assignee: binlijin
> Priority: Critical
> Fix For: 2.0.0
>
> Attachments: Cluster_total_QPS.png, MultiResponder.branch-1.patch,
> MultiResponder.master.patch, Netty4RpcServer_forperf.patch,
> NettyRpcServer.patch, NettyRpcServer_forperf.patch,
> PooledByteBufAllocator.patch, PooledByteBufAllocator2.patch, gc.png,
> gets.png, gets.png, idle.png, patched.vs.patched_and_cached.vs.no_patch.png,
> queue.png
>
>
> 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)