[ 
https://issues.apache.org/jira/browse/HADOOP-12908?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

John Zhuge updated HADOOP-12908:
--------------------------------
    Description: 
Make JvmPauseMonitor a singleton just as JvmMetrics because there is no use 
case to run multiple instances per JVM. {{TestMetrics$setPauseMonitor}} becomes 
obsolete. Initialization code for various components can be simplified.

For example, this code segment
{code}
    pauseMonitor = new JvmPauseMonitor();
    addService(pauseMonitor);
    jm.setPauseMonitor(pauseMonitor);
{code}
can be replaced with
{code}
    addService(JvmPauseMonitor.getInstance());
{code}

And this code segment
{code}
      pauseMonitor = new JvmPauseMonitor();
      pauseMonitor.init(config);
      pauseMonitor.start();
      metrics.getJvmMetrics().setPauseMonitor(pauseMonitor);
{code}
can be replaced with
{code}
      pauseMonitor = JvmPauseMonitor.getInstance();
      pauseMonitor.init(config);
      pauseMonitor.start();
{code}


  was:
Make JvmPauseMonitor a singleton just as JvmMetrics because there is no use 
case to run multiple instances per JVM. No need for 
{{TestMetrics$setPauseMonitor}} any more. Initialization code can be simplified.

For example, this code segment
{noformat}
    pauseMonitor = new JvmPauseMonitor();
    addService(pauseMonitor);
    jm.setPauseMonitor(pauseMonitor);
{noformat}
becomes
{noformat}
    addService(JvmPauseMonitor.INSTANCE);
{noformat}

And this code segment
{noformat}
      pauseMonitor = new JvmPauseMonitor();
      pauseMonitor.init(config);
      pauseMonitor.start();
      metrics.getJvmMetrics().setPauseMonitor(pauseMonitor);
{noformat}
becomes
{noformat}
      pauseMonitor.INSTANCE.init(config);
      pauseMonitor.INSTANCE.start();
{noformat}



> Make JvmPauseMonitor a singleton
> --------------------------------
>
>                 Key: HADOOP-12908
>                 URL: https://issues.apache.org/jira/browse/HADOOP-12908
>             Project: Hadoop Common
>          Issue Type: Improvement
>    Affects Versions: 2.7.2
>            Reporter: John Zhuge
>            Assignee: John Zhuge
>            Priority: Minor
>             Fix For: 2.8.0
>
>         Attachments: HADOOP-12908-001.patch, HADOOP-12908-002.patch
>
>
> Make JvmPauseMonitor a singleton just as JvmMetrics because there is no use 
> case to run multiple instances per JVM. {{TestMetrics$setPauseMonitor}} 
> becomes obsolete. Initialization code for various components can be 
> simplified.
> For example, this code segment
> {code}
>     pauseMonitor = new JvmPauseMonitor();
>     addService(pauseMonitor);
>     jm.setPauseMonitor(pauseMonitor);
> {code}
> can be replaced with
> {code}
>     addService(JvmPauseMonitor.getInstance());
> {code}
> And this code segment
> {code}
>       pauseMonitor = new JvmPauseMonitor();
>       pauseMonitor.init(config);
>       pauseMonitor.start();
>       metrics.getJvmMetrics().setPauseMonitor(pauseMonitor);
> {code}
> can be replaced with
> {code}
>       pauseMonitor = JvmPauseMonitor.getInstance();
>       pauseMonitor.init(config);
>       pauseMonitor.start();
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to