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)