accumulo-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Bill Havanki (JIRA)" <>
Subject [jira] [Commented] (ACCUMULO-2419) Improve SimpleTimer by replacing java.util.Timer
Date Mon, 03 Mar 2014 21:40:21 GMT


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:
>             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

View raw message