]
Bela Ban commented on JGRP-2462:
--------------------------------
Unit test is {{RED_Test}}
TransferQueueBundler: drop messages if queue is full
----------------------------------------------------
Key: JGRP-2462
URL:
https://issues.redhat.com/browse/JGRP-2462
Project: JGroups
Issue Type: Feature Request
Reporter: Bela Ban
Assignee: Bela Ban
Priority: Major
Fix For: 4.2.2, 5.0.0.Alpha4
When a bundler (like {{TransferQueueBundler}}) has a full queue, the senders will block.
This can happen for example when the TCP {{send}} blocks due to a full send-window.
Retransmission requests and responses compound the problem when the TQB's queue is
full.
Therefore, in addition to blocking, we should add an option to _drop_ packets when the
queue is full. Investigate whether we could use some priority based scheme, which drops
non-important messages first.
Also investigate whether senders can selectively be unblocked when the queue is full, to
either drop or add their messages. This could be done for example by removing elements
from the queue, using the aformentioned filter.
Look at random early detection )\[1\]) for inspiration.
\[1\]
https://en.wikipedia.org/wiki/Random_early_detection