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