Class TransferQueueBundler
java.lang.Object
org.jgroups.protocols.BaseBundler
org.jgroups.protocols.TransferQueueBundler
This bundler adds all (unicast or multicast) messages to a queue until max size has been exceeded, but does send
messages immediately when no other messages are available. https://issues.redhat.com/browse/JGRP-1540
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected Threadprotected BlockingQueue<Message> protected booleanprotected static final StringFields inherited from class BaseBundler
avg_fill_count, avg_remove_queue_size, avg_send_time, capacity, count, drop_when_full, FMT, FUNC, lock, log, max_size, members, msg_processing_policy, msg_stats, msgs, num_batches_sent, num_drops_on_full_queue, num_sends_because_full_queue, num_sends_because_no_msgs, num_single_msgs_sent, output, remove_delay, remove_queue_capacity, suppress_log, suppress_log_timeout, total_msgs_sent, transport, use_ringbuffer, use_single_sender_thread -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voidprotected voiddrain()Takes all messages from the queue, adds them to the hashmap and then sends all bundled messagesintIf the bundler has a queue and it should be managed by a queuing discipline (like Random Early Detection), then return the number of elements in the queue, else -1.voidCalled after creation of the bundlerintintvoidvoidrun()voidintsize()Returns the total number of messages in the hashmapvoidstart()Called afterBundler.init(TP)voidstop()Methods inherited from class BaseBundler
addMessage, avgBatchSize, dropWhenFull, dropWhenFull, getCapacity, getMaxSize, loopback, loopback, loopbackUnlessDontLoopbackIsSet, printBuffers, removeDelay, removeDelay, removeQueueCapacity, resetStats, sendBundledMessages, sendMessageList, sendMultiple, sendSingle, sendSingleMessage, setCapacity, setMaxSize, suppressLogTimeout, suppressLogTimeout, useRingBuffer, useRingBuffer, useSingleSenderThread, useSingleSenderThread, viewChange
-
Field Details
-
queue
-
remove_queue
-
bundler_thread
-
running
protected volatile boolean running -
THREAD_NAME
- See Also:
-
-
Constructor Details
-
TransferQueueBundler
public TransferQueueBundler()
-
-
Method Details
-
getQueueSize
public int getQueueSize()Description copied from interface:BundlerIf the bundler has a queue and it should be managed by a queuing discipline (like Random Early Detection), then return the number of elements in the queue, else -1. In the latter case, the queue won't be managed.
This method needs to be fast as it might get called on every message to be sent.- Specified by:
getQueueSizein interfaceBundler- Overrides:
getQueueSizein classBaseBundler
-
removeQueueSize
public int removeQueueSize() -
removeQueueCapacity
public int removeQueueCapacity()- Overrides:
removeQueueCapacityin classBaseBundler
-
init
-
start
public void start()Description copied from interface:BundlerCalled afterBundler.init(TP)- Specified by:
startin interfaceBundler- Overrides:
startin classBaseBundler
-
stop
public void stop()- Specified by:
stopin interfaceBundler- Overrides:
stopin classBaseBundler
-
renameThread
public void renameThread()- Specified by:
renameThreadin interfaceBundler
-
size
public int size()Description copied from class:BaseBundlerReturns the total number of messages in the hashmap- Specified by:
sizein interfaceBundler- Overrides:
sizein classBaseBundler
-
send
-
run
-
addAndSendIfSizeExceeded
-
drain
protected void drain()Takes all messages from the queue, adds them to the hashmap and then sends all bundled messages
-