]
Vladimir Blagojevic commented on JGRP-376:
------------------------------------------
Consider resolving JGRP-772 prior to this one. It will be easier to reason and solve this
task.
Concurrent stack: use priority based queue rather than
BoundedLinkedQueue for default thread pool
-------------------------------------------------------------------------------------------------
Key: JGRP-376
URL:
http://jira.jboss.com/jira/browse/JGRP-376
Project: JGroups
Issue Type: Feature Request
Affects Versions: 2.4
Reporter: Bela Ban
Assigned To: Bela Ban
Fix For: 2.7
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: