[
https://issues.apache.org/jira/browse/HBASE-9467?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13763677#comment-13763677
]
Nicolas Liochon commented on HBASE-9467:
----------------------------------------
bq. Isn't the story worse than you paint?
Yeah. But for the WAL, I don't care that much: whatever we do, it's at the
minimum network call. Even if I add memory, SSD drives, whatever, it will be
expensive. gets into the cache (ours or OS caches) that do not require any i/o
are a different animal.
bq. What was the concurrency like in your server? tens or hundreds of
handlers/readers?
500 threads doing gets like crazy
10 readers, the handlers were not called as I was doing the call from the
reader.
Basically, if the load is CPU bound (a search in a cache), having more threads
than core is nearly useless (nearly because we have some i/o in the sockets).
The main issue around this test is that the performances depends a lot on the
cpu cache (hence the impr)ovement I got when I used the disruptor). But it's
difficult to estimate how much you're crashing the cache on a real workload.
Here I wanted to propose a kind of "fast path" for the operations that are
likely to take no i/o. But the result of the attempt was not great. I will try
again (merging this with the disruptor). I wanted to merge the responder call
as well but I failed.
I'm also trying a (very simple) rowkey cache, and this seems to help more. Stay
tuned for this one ;-)
> write can be totally blocked temporarily by a write-heavy region
> ----------------------------------------------------------------
>
> Key: HBASE-9467
> URL: https://issues.apache.org/jira/browse/HBASE-9467
> Project: HBase
> Issue Type: Improvement
> Reporter: Feng Honghua
> Priority: Minor
>
> Write to a region can be blocked temporarily if the memstore of that region
> reaches the threshold(hbase.hregion.memstore.block.multiplier *
> hbase.hregion.flush.size) until the memstore of that region is flushed.
> For a write-heavy region, if its write requests saturates all the handler
> threads of that RS when write blocking for that region occurs, requests of
> other regions/tables to that RS also can't be served due to no available
> handler threads...until the pending writes of that write-heavy region are
> served after the flush is done. Hence during this time period, from the RS
> perspective it can't serve any request from any table/region just due to a
> single write-heavy region.
> This sounds not very reasonable, right? Maybe write requests from a region
> can only be served by a sub-set of the handler threads, and then write
> blocking of any single region can't lead to the scenario mentioned above?
> Comment?
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira