You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Ted Yu (Commented) (JIRA)" <ji...@apache.org> on 2011/11/26 17:51:40 UTC

[jira] [Commented] (HBASE-4833) HRegionServer stops could be 0.5s faster

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

Ted Yu commented on HBASE-4833:
-------------------------------

Integrated to TRUNK.

Thanks for the patch, N.
                
> HRegionServer stops could be 0.5s faster
> ----------------------------------------
>
>                 Key: HBASE-4833
>                 URL: https://issues.apache.org/jira/browse/HBASE-4833
>             Project: HBase
>          Issue Type: Improvement
>          Components: regionserver, test
>    Affects Versions: 0.94.0
>         Environment: all
>            Reporter: nkeywal
>            Assignee: nkeywal
>            Priority: Minor
>         Attachments: 4833_trunk_hregionserver.patch, 4833_trunk_hregionserver.v2.patch
>
>
> The current implementation of HRegionServer#stop is
> {noformat}
>   public void stop(final String msg) {
>     this.stopped = true;
>     LOG.info("STOPPED: " + msg);
>     synchronized (this) {
>       // Wakes run() if it is sleeping
>       notifyAll(); // FindBugs NN_NAKED_NOTIFY
>     }
>   }
> {noformat}
> The notification is sent on the wrong object and does nothing. As a consequence, the region server continues to sleep instead of waking up and stopping immediately. A correct implementation is:
> {noformat}
>   public void stop(final String msg) {
>     this.stopped = true;
>     LOG.info("STOPPED: " + msg);
>     // Wakes run() if it is sleeping
>     sleeper.skipSleepCycle();
>   }
> {noformat}
> Then the region server stops immediately. This makes the region server stops 0,5s faster on average, which is quite useful for unit tests.
> However, with this fix, TestRegionServerCoprocessorExceptionWithAbort does not work.
> It likely because the code does no expect the region server to stop that fast. See HBASE-4832

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira