[
https://issues.apache.org/jira/browse/HBASE-6423?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13499867#comment-13499867
]
Ted Yu commented on HBASE-6423:
-------------------------------
Patch looks good.
{code}
+ if (timeToWait < 0L) {
+ this.updatesBlockedMs.add(now - startTime);
+ LOG.info("Failed to unblocking updates for region " + this + " '"
+ + Thread.currentThread().getName() + "' in time. The region is still
busy.");
+ throw new RegionTooBusyException("region is flushing");
{code}
typo: to unblocking updates -> to unblock updates
Should we include -timeToWait, the amount of time we are unable to wait in the
exception message ?
> Writes should not block reads on blocking updates to memstores
> --------------------------------------------------------------
>
> Key: HBASE-6423
> URL: https://issues.apache.org/jira/browse/HBASE-6423
> Project: HBase
> Issue Type: Bug
> Reporter: Karthik Ranganathan
> Assignee: Amitanand Aiyer
> Attachments: trunk-6423.patch
>
>
> We have a big data use case where we turn off WAL and have a ton of reads and
> writes. We found that:
> 1. flushing a memstore takes a while (GZIP compression)
> 2. incoming writes cause the new memstore to grow in an unbounded fashion
> 3. this triggers blocking memstore updates
> 4. in turn, this causes all the RPC handler threads to block on writes to
> that memstore
> 5. we are not able to read during this time as RPC handlers are blocked
> At a higher level, we should not hold up the RPC threads while blocking
> updates, and we should build in some sort of rate control.
--
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