Class TIME
java.lang.Object
org.jgroups.stack.Protocol
org.jgroups.protocols.TIME
- All Implemented Interfaces:
Lifecycle
Protocol measuring delivery times. Can be used in the up or down direction
JIRA: https://issues.redhat.com/browse/JGRP-2101
- Since:
- 4.0
- Author:
- Bela Ban
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final AverageMinMaxprotected final AverageMinMaxprotected booleanprotected final LongAdderprotected final LongAdderprotected final LongAdderprotected final LongAdderprotected final LongAdderprotected final LongAdderprotected final LongAdderprotected final LongAdderprotected final LongAdderprotected booleanprotected final AverageMinMaxprotected final AverageMinMaxprotected booleanFields inherited from class Protocol
after_creation_hook, down_prot, ergonomics, id, local_addr, log, policies, preview_warning, stack, stats, up_prot -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionA message is sent down the stack.voidA single message was received.voidup(MessageBatch batch) Dividing the delivery time for a batch by the batch size is problematic, e.g.Methods inherited from class Protocol
accept, addPolicy, addr, addr, afterCreationHook, destroy, down, down, enableStats, getAddress, getComponents, getDownProtocol, getDownServices, getId, getIdsAbove, getLevel, getLog, getName, getPolicies, getProtocolStack, getSocketFactory, getThreadFactory, getTransport, getUpProtocol, getUpServices, getValue, init, isErgonomics, level, parse, policies, previewWarning, previewWarning, providedDownServices, providedUpServices, removePolicy, requiredDownServices, requiredUpServices, resetStatistics, setAddress, setDownProtocol, setErgonomics, setId, setLevel, setPolicies, setProtocolStack, setSocketFactory, setUpProtocol, setValue, start, statsEnabled, stop, toString, up
-
Field Details
-
up_delivery_msgs
-
up_delivery_batches
-
avg_up_batch_size
-
down_delivery
-
down_msgs
protected boolean down_msgs -
up_batches
protected boolean up_batches -
up_msgs
protected boolean up_msgs -
num_batches
-
num_batches_oob
-
num_batches_reg
-
num_down_msgs
-
num_down_msgs_oob
-
num_down_msgs_reg
-
num_up_msgs
-
num_up_msgs_oob
-
num_up_msgs_reg
-
-
Constructor Details
-
TIME
public TIME()
-
-
Method Details
-
resetStats
public void resetStats()- Overrides:
resetStatsin classProtocol
-
down
-
up
-
up
Dividing the delivery time for a batch by the batch size is problematic, e.g. if a batch of 5 is received at time 0 and the 5 messages are delivered at times 20, 40, 60, 80 and 100, then the total time is 100, divided by 5 would be 20 per message.
However, this is incorrect as it ignores the waiting times for the individual messages: e.g. message 3 gets delayed for 60 until it is processed.
The correct average delivery time per message is therefore (20+40+60+80+100)/5 = 60.
The above computation is not correct: we don't know whether a protocol looks at all messages: it may even remove some (making 'size' incorrect)!
Also, we don't know whether messages in a batch are processed in order, on by one, or whether they are processed in parallel. Therefore, times for individual messages will not be computed.
-