[jboss-jira] [JBoss JIRA] Updated: (JGRP-1051) TimeScheduler: replace use of ScheduledThreadPoolExecutor with ConcurrentSkipListMap
Brian Stansberry (JIRA)
jira-events at lists.jboss.org
Thu Sep 17 16:33:11 EDT 2009
[ https://jira.jboss.org/jira/browse/JGRP-1051?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Brian Stansberry updated JGRP-1051:
-----------------------------------
Attachment: timer.zip
Attaching ScheduledThreadPoolExecutor variant I mentioned. The interesting class is DelayQueue; the others are just the same as the JDK classes; only needed because the JDK classes don't provide a hook to set the queue. The fact that all the other classes besides DelayQueue are required makes this nothing more than an interesting experiment, IMO.
The TimerTest class is a work-in-progress attempt at testing the perf of the other classes compared to the standard JDK classes.
> TimeScheduler: replace use of ScheduledThreadPoolExecutor with ConcurrentSkipListMap
> ------------------------------------------------------------------------------------
>
> Key: JGRP-1051
> URL: https://jira.jboss.org/jira/browse/JGRP-1051
> Project: JGroups
> Issue Type: Feature Request
> Reporter: Bela Ban
> Assignee: Bela Ban
> Fix For: 2.9
>
> Attachments: timer.zip, TimeScheduler.java
>
>
> TimeScheduler currently extends ScheduledThreadPoolExecutor, which uses a DelayQueue for keeping an ordered list of tasks (ordered by their execution times).
> DelayQueue doesn't provide good speed, e.g. (IIRC) remove() requires a linear list scan.
> ConcurrentSkipListMap however provides O(log(n)) cost for get(), put(), remove() and containsKey(). Attached is a cursory impl of TimeScheduler based on ConcurrentSkipListMap. It is faster than the old version.
> Since ConcurrentSkipListMap requires JDK 1.6, we cannot use this in 2.6.x. It can be used in 3.0 only, or perhaps - after a discussion on the mailing list - in 2.9...
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the jboss-jira
mailing list