[
https://issues.apache.org/jira/browse/HBASE-12684?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jurriaan Mous updated HBASE-12684:
----------------------------------
Attachment: HBASE-12684-v23-epoll.patch
Ok there is one more thing we could test out.
In the latest patch I added support for Netty its native Epoll based linux
transports. This moves all transport off the java stack. It is said to be
faster but I don't have access to a Linux machine at the moment to test it out.
https://github.com/netty/netty/wiki/Native-transports
An early blog post about its creation a year ago which shows it can enable
significant performance improvements.
http://normanmaurer.me/blog/2014/01/07/JNI-Performance-Welcome-to-the-dark-side/
I have added an isLinux method to the JVM class. Added a switch in
AsyncRpcClient to select the Epoll powered one on Linux. Also updated the Netty
version to a bit more recent one which contains some performance improvements
for this new transport method.
> Add new AsyncRpcClient
> ----------------------
>
> Key: HBASE-12684
> URL: https://issues.apache.org/jira/browse/HBASE-12684
> Project: HBase
> Issue Type: Improvement
> Components: Client
> Reporter: Jurriaan Mous
> Assignee: Jurriaan Mous
> Attachments: HBASE-12684-DEBUG2.patch, HBASE-12684-DEBUG3.patch,
> HBASE-12684-v1.patch, HBASE-12684-v10.patch, HBASE-12684-v11.patch,
> HBASE-12684-v12.patch, HBASE-12684-v13.patch, HBASE-12684-v14.patch,
> HBASE-12684-v15.patch, HBASE-12684-v16.patch, HBASE-12684-v17.patch,
> HBASE-12684-v17.patch, HBASE-12684-v18.patch, HBASE-12684-v19.1.patch,
> HBASE-12684-v19.patch, HBASE-12684-v19.patch, HBASE-12684-v2.patch,
> HBASE-12684-v20-heapBuffer.patch, HBASE-12684-v20.patch,
> HBASE-12684-v21-heapBuffer.1.patch, HBASE-12684-v21-heapBuffer.patch,
> HBASE-12684-v21.patch, HBASE-12684-v22.patch, HBASE-12684-v23-epoll.patch,
> HBASE-12684-v3.patch, HBASE-12684-v4.patch, HBASE-12684-v5.patch,
> HBASE-12684-v6.patch, HBASE-12684-v7.patch, HBASE-12684-v8.patch,
> HBASE-12684-v9.patch, HBASE-12684.patch, myrecording.jfr, requests.png
>
>
> With the changes in HBASE-12597 it is possible to add new RpcClients. This
> issue is about adding a new Async RpcClient which would enable HBase to do
> non blocking protobuf service communication.
> Besides delivering a new AsyncRpcClient I would also like to ask the question
> what it would take to replace the current RpcClient? This would enable to
> simplify async code in some next issues.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)