hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Nicolas Liochon (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-9467) write can be totally blocked temporarily by a write-heavy region
Date Wed, 11 Sep 2013 09:09:53 GMT

    [ https://issues.apache.org/jira/browse/HBASE-9467?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13764141#comment-13764141
] 

Nicolas Liochon commented on HBASE-9467:
----------------------------------------

bq. HTable.put() 
Ok, I misunderstood. If you do a synchronous put, the client will wait until it succeeds.
The server exception will be hidden from the final user and managed by the hbase client api
code, (except if we fails to many times of course). So we can raise an exception on the server,
to be managed by the hbase client API. In this case, there is likely nothing to change on
the client side: the standard retry mechanism will do. On trunk, if you do an asynchronous
put (HTable#setAutoFlush(false)), the writes will continue on the other regions, but this
one will be ignored until the write buffer becomes full. As well, with some luck you don't
have anything to change here.

Thanks a lot for doing the patch :-), don't hesitate if you have any question.
                
> 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
>            Assignee: 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

Mime
View raw message