hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jurriaan Mous (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (HBASE-12684) Add new AsyncRpcClient
Date Tue, 06 Jan 2015 11:12:35 GMT

     [ 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)

Mime
View raw message