[jboss-jira] [JBoss JIRA] Updated: (JGRP-376) Concurrent stack: use priority based queue rather than BoundedLinkedQueue for default thread pool
Bela Ban (JIRA)
jira-events at lists.jboss.org
Tue Sep 23 09:48:20 EDT 2008
[ https://jira.jboss.org/jira/browse/JGRP-376?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Bela Ban updated JGRP-376:
--------------------------
Fix Version/s: 2.x
(was: 2.7)
Moved to 2.x, where it will probably die.
Reason: perf didn't get better, but design got worse, e.g. making private methods in TP public, replacing direct field access through method calls and so on.
> Concurrent stack: use priority based queue rather than BoundedLinkedQueue for default thread pool
> -------------------------------------------------------------------------------------------------
>
> Key: JGRP-376
> URL: https://jira.jboss.org/jira/browse/JGRP-376
> Project: JGroups
> Issue Type: Feature Request
> Affects Versions: 2.4
> Reporter: Bela Ban
> Assignee: Bela Ban
> Fix For: 2.x
>
>
> This will allow us to dispatch incoming messages to threads from the pool based on criteria.
> - The impl implements interface BoundedChannel
> - It has N queues, 1 for each sender (possibly those are BoundedLinkedQueues)
> - There is a max size in bytes for the priority queue, each internal queue has max_size / N bytes where N = number of members. This is
> dynamically adjusted
> ADDITION
> - An internal queue maintains the number of bytes (Message.length()), an offer() or put() increases that amount by the size of the message, a
> take() or poll() decreases the amount. When a put() or offer() would exceed the max amount, it will block until a take() or poll() decreases
> it such that the new message can be added to the queue. We might also discard messages to full queues, or implement somthing akin to
> RED (random early detection), which starts discarding messages *before* the queue is full
> REMOVAL
> - Strategy pluggable, e.g.
> - Take from the fullest queue
> - Take from the least full queue
> - Round robin
> - Weighted round robin (weighted by capacity of each queue), e.g. take relative to capacity from each queue. Example:
> Queues A (2MB), B (2MB), C (6MB): we take 2 from A, 2 from B and 6 from C
> - Random robin
> etc
--
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