You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@accumulo.apache.org by "Bill Havanki (JIRA)" <ji...@apache.org> on 2014/03/03 22:40:21 UTC
[jira] [Commented] (ACCUMULO-2419) Improve SimpleTimer by replacing
java.util.Timer
[ https://issues.apache.org/jira/browse/ACCUMULO-2419?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13918608#comment-13918608 ]
Bill Havanki commented on ACCUMULO-2419:
----------------------------------------
Question for the group: I plan to support specifying the thread pool size for {{SimpleTimer}} (default 1) with a configuration property, but callers of {{getInstance()}}, like {{TabletServer}} and {{Master}}, will need to pass in a configuration object for that to happen. Is it appropriate to update all of those callers within this ticket - say, as a separate commit - or is that better done under a separate ticket?
> Improve SimpleTimer by replacing java.util.Timer
> ------------------------------------------------
>
> Key: ACCUMULO-2419
> URL: https://issues.apache.org/jira/browse/ACCUMULO-2419
> Project: Accumulo
> Issue Type: Improvement
> Components: tserver
> Reporter: Bill Havanki
> Assignee: Bill Havanki
> Priority: Minor
> Labels: performance
>
> The server utility class {{SimpleTimer}} uses a {{java.util.Timer}} under the hood for scheduling tasks. From _Java Concurrency in Practice_, p. 123:
> bq. {{Timer}} has some drawbacks, and {{ScheduledThreadPoolExecutor}} should be thought of as its replacement. ... there is little reason to use {{Timer}} in Java 5.0 or later.
> The purpose of {{SimpleTimer}} is "to reduce the number of threads dedicated to simple events", but a user cannot opt to let more than one thread handle the events on systems that can take the load. Also, if any task does take a long time for some reason, execution of other tasks is affected.
> The {{Timer}} in {{SimpleTimer}} should be replaced with {{ScheduledThreadPoolExecutor}}, and the class should allow for more than one thread to be used for task execution.
--
This message was sent by Atlassian JIRA
(v6.2#6252)