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

Lars Hofhansl commented on HBASE-6974:
--------------------------------------

What I meant was something like this:
{code}
     boolean blocked = false;
+    long startTime = 0;
     while (this.memstoreSize.get() > this.blockingMemStoreSize) {
       requestFlush();
       if (!blocked) {
+        startTime = EnvironmentEdgeManager.currentTimeMillis();
{code}

That way we only call currentTimeMillis when we're actually blocking.
I think in the MemstoreFlusher we should have the same logic with the blocked 
flag, otherwise we'd get inundated with log messages that we need to flush.

                
> Metric for blocked updates
> --------------------------
>
>                 Key: HBASE-6974
>                 URL: https://issues.apache.org/jira/browse/HBASE-6974
>             Project: HBase
>          Issue Type: Bug
>            Reporter: Lars Hofhansl
>            Assignee: Michael Drzal
>            Priority: Critical
>             Fix For: 0.94.3, 0.96.0
>
>         Attachments: HBASE-6974.patch, HBASE-6974-v2.patch
>
>
> When the disc subsystem cannot keep up with a sustained high write load, a 
> region will eventually block updates to throttle clients.
> (HRegion.checkResources).
> It would be nice to have a metric for this, so that these occurrences can be 
> tracked.

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

Reply via email to