[ 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-v20.patch HBASE-12684-v20-heapBuffer.patch - Move to a pooled allocator. (It can make some serious difference with large writes as this twitter blog shows: https://blog.twitter.com/2013/netty-4-at-twitter-reduced-gc-overhead) - Do not flush the preamble since it will be automatically flushed on any next write. (Saves an early sys call) - Add a timeout to the Promise so it will also be a timed wait like old client. (This was the extra Object method call) I don't see anything else strange happening in that bit deeper stack. - Disable the ResourceLeakDetector. (Which is by default sampling some bytebufs to check for leaks) Added a heapBuffer variant of the patch. It seams buffer() is the same as directBuffer() on a modern OS since Netty recommends direct buffers. A heapBuffer() call will always get a heap buffer. I hope this moves the scale in the right direction on the larger loads. bq. (These are random reads – that ok?) A random write workload should be fine as long as there is some serious RPC work to be done :) > 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-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, 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)